# Install Conda and set up the environment
!pip install -q condacolab
import condacolab
condacolab.install()
⏬ Downloading https://github.com/conda-forge/miniforge/releases/download/23.11.0-0/Mambaforge-23.11.0-0-Linux-x86_64.sh...
📦 Installing...
📌 Adjusting configuration...
🩹 Patching environment...
⏲ Done in 0:00:15
🔁 Restarting kernel...
# Install the necessary libraries for financial analysis
!pip install wrds swig  

# Install additional system dependencies
!apt-get update -y -qq && apt-get install -y -qq cmake libopenmpi-dev python3-dev zlib1g-dev libgl1-mesa-glx

# Install the FinRL library from GitHub
!pip install git+https://github.com/AI4Finance-Foundation/FinRL.git
Collecting wrds
  Downloading wrds-3.2.0-py3-none-any.whl.metadata (5.8 kB)
Collecting swig
  Downloading swig-4.2.1.post0-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl.metadata (3.5 kB)
Collecting numpy<1.27,>=1.26 (from wrds)
  Downloading numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.0/61.0 kB 3.0 MB/s eta 0:00:00
ent already satisfied: packaging<23.3 in /usr/local/lib/python3.10/site-packages (from wrds) (23.2)
Collecting pandas<2.3,>=2.2 (from wrds)
  Downloading pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (89 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 89.9/89.9 kB 4.4 MB/s eta 0:00:00
 wrds)
  Downloading psycopg2_binary-2.9.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.9 kB)
Collecting scipy<1.13,>=1.12 (from wrds)
  Downloading scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (60 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.4/60.4 kB 4.3 MB/s eta 0:00:00
y<2.1,>=2 (from wrds)
  Downloading SQLAlchemy-2.0.36-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (9.7 kB)
Collecting python-dateutil>=2.8.2 (from pandas<2.3,>=2.2->wrds)
  Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting pytz>=2020.1 (from pandas<2.3,>=2.2->wrds)
  Downloading pytz-2024.2-py2.py3-none-any.whl.metadata (22 kB)
Collecting tzdata>=2022.7 (from pandas<2.3,>=2.2->wrds)
  Downloading tzdata-2024.2-py2.py3-none-any.whl.metadata (1.4 kB)
Collecting typing-extensions>=4.6.0 (from sqlalchemy<2.1,>=2->wrds)
  Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
Collecting greenlet!=0.4.17 (from sqlalchemy<2.1,>=2->wrds)
  Downloading greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB)
Collecting six>=1.5 (from python-dateutil>=2.8.2->pandas<2.3,>=2.2->wrds)
  Downloading six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB)
Downloading wrds-3.2.0-py3-none-any.whl (13 kB)
Downloading swig-4.2.1.post0-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 31.4 MB/s eta 0:00:00
py-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.2/18.2 MB 72.3 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.1/13.1 MB 90.9 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.0/3.0 MB 72.7 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 38.4/38.4 MB 19.8 MB/s eta 0:00:00
y-2.0.36-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 82.1 MB/s eta 0:00:00
anylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (599 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 599.5/599.5 kB 34.6 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 15.1 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 508.0/508.0 kB 27.8 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 346.6/346.6 kB 24.4 MB/s eta 0:00:00
py, greenlet, sqlalchemy, scipy, python-dateutil, pandas, wrds
Successfully installed greenlet-3.1.1 numpy-1.26.4 pandas-2.2.3 psycopg2-binary-2.9.10 python-dateutil-2.9.0.post0 pytz-2024.2 scipy-1.12.0 six-1.16.0 sqlalchemy-2.0.36 swig-4.2.1.post0 typing-extensions-4.12.2 tzdata-2024.2 wrds-3.2.0
{"id":"fdba30ae63b6426c990650031f5d6e76","pip_warning":{"packages":["six"]}}
W: Skipping acquire of configured file 'main/source/Sources' as repository 'https://r2u.stat.illinois.edu/ubuntu jammy InRelease' does not seem to provide it (sources.list entry misspelt?)
Selecting previously unselected package libgl1-mesa-glx:amd64.
(Reading database ... 123623 files and directories currently installed.)
Preparing to unpack .../libgl1-mesa-glx_23.0.4-0ubuntu1~22.04.1_amd64.deb ...
Unpacking libgl1-mesa-glx:amd64 (23.0.4-0ubuntu1~22.04.1) ...
Setting up libgl1-mesa-glx:amd64 (23.0.4-0ubuntu1~22.04.1) ...
Collecting git+https://github.com/AI4Finance-Foundation/FinRL.git
  Cloning https://github.com/AI4Finance-Foundation/FinRL.git to /tmp/pip-req-build-nplauypi
  Running command git clone --filter=blob:none --quiet https://github.com/AI4Finance-Foundation/FinRL.git /tmp/pip-req-build-nplauypi
  Resolved https://github.com/AI4Finance-Foundation/FinRL.git to commit 0496601ee2824ca675beb5a220afd9109ac02ffa
  Installing build dependencies ... ents to build wheel ... etadata (pyproject.toml) ... /AI4Finance-Foundation/ElegantRL.git#egg=elegantrl (from finrl==0.3.6)
  Cloning https://github.com/AI4Finance-Foundation/ElegantRL.git to /tmp/pip-install-3renqofl/elegantrl_600d50880f274b74a9793bcb08b354cc
  Running command git clone --filter=blob:none --quiet https://github.com/AI4Finance-Foundation/ElegantRL.git /tmp/pip-install-3renqofl/elegantrl_600d50880f274b74a9793bcb08b354cc
  Resolved https://github.com/AI4Finance-Foundation/ElegantRL.git to commit 6a016b12a8fef7d50305510f906abef05f558784
  Preparing metadata (setup.py) ...  finrl==0.3.6)
  Downloading alpaca_trade_api-3.2.0-py3-none-any.whl.metadata (29 kB)
Collecting ccxt<4,>=3 (from finrl==0.3.6)
  Downloading ccxt-3.1.60-py2.py3-none-any.whl.metadata (108 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 108.7/108.7 kB 615.0 kB/s eta 0:00:00
 finrl==0.3.6)
  Downloading exchange_calendars-4.5.7-py3-none-any.whl.metadata (37 kB)
Collecting jqdatasdk<2,>=1 (from finrl==0.3.6)
  Downloading jqdatasdk-1.9.6-py3-none-any.whl.metadata (5.8 kB)
Collecting pyfolio<0.10,>=0.9 (from finrl==0.3.6)
  Downloading pyfolio-0.9.2.tar.gz (91 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 91.1/91.1 kB 7.6 MB/s eta 0:00:00
etadata (setup.py) ...  finrl==0.3.6)
  Downloading pyportfolioopt-1.5.5-py3-none-any.whl.metadata (23 kB)
Collecting ray<3,>=2 (from ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading ray-2.38.0-cp310-cp310-manylinux2014_x86_64.whl.metadata (17 kB)
Collecting scikit-learn<2,>=1 (from finrl==0.3.6)
  Downloading scikit_learn-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (13 kB)
Collecting stable-baselines3>=2.0.0a5 (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading stable_baselines3-2.4.0a11-py3-none-any.whl.metadata (4.5 kB)
Collecting stockstats<0.6,>=0.5 (from finrl==0.3.6)
  Downloading stockstats-0.5.4-py2.py3-none-any.whl.metadata (26 kB)
Requirement already satisfied: wrds<4,>=3 in /usr/local/lib/python3.10/site-packages (from finrl==0.3.6) (3.2.0)
Collecting yfinance<0.3,>=0.2 (from finrl==0.3.6)
  Downloading yfinance-0.2.48-py2.py3-none-any.whl.metadata (13 kB)
Requirement already satisfied: pandas>=0.18.1 in /usr/local/lib/python3.10/site-packages (from alpaca-trade-api<4,>=3->finrl==0.3.6) (2.2.3)
Requirement already satisfied: numpy>=1.11.1 in /usr/local/lib/python3.10/site-packages (from alpaca-trade-api<4,>=3->finrl==0.3.6) (1.26.4)
Requirement already satisfied: requests<3,>2 in /usr/local/lib/python3.10/site-packages (from alpaca-trade-api<4,>=3->finrl==0.3.6) (2.31.0)
Collecting urllib3<2,>1.24 (from alpaca-trade-api<4,>=3->finrl==0.3.6)
  Downloading urllib3-1.26.20-py2.py3-none-any.whl.metadata (50 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 50.1/50.1 kB 3.3 MB/s eta 0:00:00
 alpaca-trade-api<4,>=3->finrl==0.3.6)
  Downloading websocket_client-1.8.0-py3-none-any.whl.metadata (8.0 kB)
Collecting websockets<11,>=9.0 (from alpaca-trade-api<4,>=3->finrl==0.3.6)
  Downloading websockets-10.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.4 kB)
Collecting msgpack==1.0.3 (from alpaca-trade-api<4,>=3->finrl==0.3.6)
  Downloading msgpack-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (8.7 kB)
Collecting aiohttp<4,>=3.8.3 (from alpaca-trade-api<4,>=3->finrl==0.3.6)
  Downloading aiohttp-3.10.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.6 kB)
Collecting PyYAML==6.0.1 (from alpaca-trade-api<4,>=3->finrl==0.3.6)
  Downloading PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
Collecting deprecation==2.1.0 (from alpaca-trade-api<4,>=3->finrl==0.3.6)
  Downloading deprecation-2.1.0-py2.py3-none-any.whl.metadata (4.6 kB)
Requirement already satisfied: packaging in /usr/local/lib/python3.10/site-packages (from deprecation==2.1.0->alpaca-trade-api<4,>=3->finrl==0.3.6) (23.2)
Requirement already satisfied: setuptools>=60.9.0 in /usr/local/lib/python3.10/site-packages (from ccxt<4,>=3->finrl==0.3.6) (68.2.2)
Requirement already satisfied: certifi>=2018.1.18 in /usr/local/lib/python3.10/site-packages (from ccxt<4,>=3->finrl==0.3.6) (2023.11.17)
Collecting cryptography>=2.6.1 (from ccxt<4,>=3->finrl==0.3.6)
  Downloading cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl.metadata (5.4 kB)
Collecting aiodns>=1.1.1 (from ccxt<4,>=3->finrl==0.3.6)
  Downloading aiodns-3.2.0-py3-none-any.whl.metadata (4.0 kB)
Collecting yarl>=1.7.2 (from ccxt<4,>=3->finrl==0.3.6)
  Downloading yarl-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (64 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.8/64.8 kB 5.0 MB/s eta 0:00:00
 exchange-calendars<5,>=4->finrl==0.3.6)
  Downloading pyluach-2.2.0-py3-none-any.whl.metadata (4.3 kB)
Collecting toolz (from exchange-calendars<5,>=4->finrl==0.3.6)
  Downloading toolz-1.0.0-py3-none-any.whl.metadata (5.1 kB)
Requirement already satisfied: tzdata in /usr/local/lib/python3.10/site-packages (from exchange-calendars<5,>=4->finrl==0.3.6) (2024.2)
Collecting korean-lunar-calendar (from exchange-calendars<5,>=4->finrl==0.3.6)
  Downloading korean_lunar_calendar-0.3.1-py3-none-any.whl.metadata (2.8 kB)
Requirement already satisfied: six in /usr/local/lib/python3.10/site-packages (from jqdatasdk<2,>=1->finrl==0.3.6) (1.16.0)
Requirement already satisfied: SQLAlchemy>=1.2.8 in /usr/local/lib/python3.10/site-packages (from jqdatasdk<2,>=1->finrl==0.3.6) (2.0.36)
Collecting pymysql>=0.7.6 (from jqdatasdk<2,>=1->finrl==0.3.6)
  Downloading PyMySQL-1.1.1-py3-none-any.whl.metadata (4.4 kB)
Collecting thriftpy2!=0.5.1,>=0.3.9 (from jqdatasdk<2,>=1->finrl==0.3.6)
  Downloading thriftpy2-0.5.2.tar.gz (782 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 782.3/782.3 kB 20.0 MB/s eta 0:00:00
ents to build wheel ... etadata (pyproject.toml) ...  pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading ipython-8.29.0-py3-none-any.whl.metadata (5.0 kB)
Collecting matplotlib>=1.4.0 (from pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading matplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
Requirement already satisfied: pytz>=2014.10 in /usr/local/lib/python3.10/site-packages (from pyfolio<0.10,>=0.9->finrl==0.3.6) (2024.2)
Requirement already satisfied: scipy>=0.14.0 in /usr/local/lib/python3.10/site-packages (from pyfolio<0.10,>=0.9->finrl==0.3.6) (1.12.0)
Collecting seaborn>=0.7.1 (from pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading seaborn-0.13.2-py3-none-any.whl.metadata (5.4 kB)
Collecting empyrical>=0.5.0 (from pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading empyrical-0.5.5.tar.gz (52 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 52.8/52.8 kB 4.5 MB/s eta 0:00:00
etadata (setup.py) ...  pyportfolioopt<2,>=1->finrl==0.3.6)
  Downloading cvxpy-1.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (8.8 kB)
Collecting click>=7.0 (from ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting filelock (from ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading filelock-3.16.1-py3-none-any.whl.metadata (2.9 kB)
Collecting jsonschema (from ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading jsonschema-4.23.0-py3-none-any.whl.metadata (7.9 kB)
Collecting protobuf!=3.19.5,>=3.15.3 (from ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading protobuf-5.28.3-cp38-abi3-manylinux2014_x86_64.whl.metadata (592 bytes)
Collecting aiosignal (from ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading aiosignal-1.3.1-py3-none-any.whl.metadata (4.0 kB)
Collecting frozenlist (from ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (13 kB)
Collecting tensorboardX>=1.9 (from ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading tensorboardX-2.6.2.2-py2.py3-none-any.whl.metadata (5.8 kB)
Collecting pyarrow>=6.0.1 (from ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading pyarrow-18.0.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (3.3 kB)
Collecting fsspec (from ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading fsspec-2024.10.0-py3-none-any.whl.metadata (11 kB)
Collecting aiohttp-cors (from ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading aiohttp_cors-0.7.0-py3-none-any.whl.metadata (20 kB)
Collecting colorful (from ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading colorful-0.5.6-py2.py3-none-any.whl.metadata (16 kB)
Collecting py-spy>=0.2.0 (from ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading py_spy-0.4.0-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl.metadata (16 kB)
Collecting opencensus (from ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading opencensus-0.11.4-py2.py3-none-any.whl.metadata (12 kB)
Collecting pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3 (from ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading pydantic-2.9.2-py3-none-any.whl.metadata (149 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 149.4/149.4 kB 10.7 MB/s eta 0:00:00
etheus-client>=0.7.1 (from ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading prometheus_client-0.21.0-py3-none-any.whl.metadata (1.8 kB)
Collecting smart-open (from ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading smart_open-7.0.5-py3-none-any.whl.metadata (24 kB)
Collecting virtualenv!=20.21.1,>=20.0.24 (from ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading virtualenv-20.27.1-py3-none-any.whl.metadata (4.5 kB)
Collecting grpcio>=1.42.0 (from ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading grpcio-1.67.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.9 kB)
Collecting memray (from ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading memray-1.14.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.metadata (19 kB)
Collecting joblib>=1.2.0 (from scikit-learn<2,>=1->finrl==0.3.6)
  Downloading joblib-1.4.2-py3-none-any.whl.metadata (5.4 kB)
Collecting threadpoolctl>=3.1.0 (from scikit-learn<2,>=1->finrl==0.3.6)
  Downloading threadpoolctl-3.5.0-py3-none-any.whl.metadata (13 kB)
Collecting gymnasium<1.1.0,>=0.29.1 (from stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading gymnasium-1.0.0-py3-none-any.whl.metadata (9.5 kB)
Collecting torch>=1.13 (from stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading torch-2.5.1-cp310-cp310-manylinux1_x86_64.whl.metadata (28 kB)
Collecting cloudpickle (from stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading cloudpickle-3.1.0-py3-none-any.whl.metadata (7.0 kB)
Collecting opencv-python (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading opencv_python-4.10.0.84-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (20 kB)
Collecting pygame (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading pygame-2.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (12 kB)
Collecting tensorboard>=2.9.1 (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading tensorboard-2.18.0-py3-none-any.whl.metadata (1.6 kB)
Collecting psutil (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (22 kB)
Requirement already satisfied: tqdm in /usr/local/lib/python3.10/site-packages (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6) (4.66.1)
Collecting rich (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading rich-13.9.4-py3-none-any.whl.metadata (18 kB)
Collecting ale-py>=0.9.0 (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading ale_py-0.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.6 kB)
Collecting pillow (from stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (9.1 kB)
Requirement already satisfied: psycopg2-binary<2.10,>=2.9 in /usr/local/lib/python3.10/site-packages (from wrds<4,>=3->finrl==0.3.6) (2.9.10)
Collecting multitasking>=0.0.7 (from yfinance<0.3,>=0.2->finrl==0.3.6)
  Downloading multitasking-0.0.11-py3-none-any.whl.metadata (5.5 kB)
Collecting lxml>=4.9.1 (from yfinance<0.3,>=0.2->finrl==0.3.6)
  Downloading lxml-5.3.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (3.8 kB)
Requirement already satisfied: platformdirs>=2.0.0 in /usr/local/lib/python3.10/site-packages (from yfinance<0.3,>=0.2->finrl==0.3.6) (4.1.0)
Collecting frozendict>=2.3.4 (from yfinance<0.3,>=0.2->finrl==0.3.6)
  Downloading frozendict-2.4.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (23 kB)
Collecting peewee>=3.16.2 (from yfinance<0.3,>=0.2->finrl==0.3.6)
  Downloading peewee-3.17.7.tar.gz (939 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 939.5/939.5 kB 43.7 MB/s eta 0:00:00
ents to build wheel ... etadata (pyproject.toml) ...  yfinance<0.3,>=0.2->finrl==0.3.6)
  Downloading beautifulsoup4-4.12.3-py3-none-any.whl.metadata (3.8 kB)
Collecting html5lib>=1.1 (from yfinance<0.3,>=0.2->finrl==0.3.6)
  Downloading html5lib-1.1-py2.py3-none-any.whl.metadata (16 kB)
Collecting th (from elegantrl@ git+https://github.com/AI4Finance-Foundation/ElegantRL.git#egg=elegantrl->finrl==0.3.6)
  Downloading th-0.4.1-py3-none-any.whl.metadata (3.4 kB)
Collecting pycares>=4.0.0 (from aiodns>=1.1.1->ccxt<4,>=3->finrl==0.3.6)
  Downloading pycares-4.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.1 kB)
Collecting aiohappyeyeballs>=2.3.0 (from aiohttp<4,>=3.8.3->alpaca-trade-api<4,>=3->finrl==0.3.6)
  Downloading aiohappyeyeballs-2.4.3-py3-none-any.whl.metadata (6.1 kB)
Collecting attrs>=17.3.0 (from aiohttp<4,>=3.8.3->alpaca-trade-api<4,>=3->finrl==0.3.6)
  Downloading attrs-24.2.0-py3-none-any.whl.metadata (11 kB)
Collecting multidict<7.0,>=4.5 (from aiohttp<4,>=3.8.3->alpaca-trade-api<4,>=3->finrl==0.3.6)
  Downloading multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.0 kB)
Collecting async-timeout<5.0,>=4.0 (from aiohttp<4,>=3.8.3->alpaca-trade-api<4,>=3->finrl==0.3.6)
  Downloading async_timeout-4.0.3-py3-none-any.whl.metadata (4.2 kB)
Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/site-packages (from ale-py>=0.9.0->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6) (4.12.2)
Collecting soupsieve>1.2 (from beautifulsoup4>=4.11.1->yfinance<0.3,>=0.2->finrl==0.3.6)
  Downloading soupsieve-2.6-py3-none-any.whl.metadata (4.6 kB)
Requirement already satisfied: cffi>=1.12 in /usr/local/lib/python3.10/site-packages (from cryptography>=2.6.1->ccxt<4,>=3->finrl==0.3.6) (1.16.0)
Collecting osqp>=0.6.2 (from cvxpy<2.0.0,>=1.1.19->pyportfolioopt<2,>=1->finrl==0.3.6)
  Downloading osqp-0.6.7.post3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.9 kB)
Collecting ecos>=2 (from cvxpy<2.0.0,>=1.1.19->pyportfolioopt<2,>=1->finrl==0.3.6)
  Downloading ecos-2.0.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (8.0 kB)
Collecting clarabel>=0.5.0 (from cvxpy<2.0.0,>=1.1.19->pyportfolioopt<2,>=1->finrl==0.3.6)
  Downloading clarabel-0.9.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.8 kB)
Collecting scs>=3.2.4.post1 (from cvxpy<2.0.0,>=1.1.19->pyportfolioopt<2,>=1->finrl==0.3.6)
  Downloading scs-3.2.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
Collecting pandas-datareader>=0.2 (from empyrical>=0.5.0->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading pandas_datareader-0.10.0-py3-none-any.whl.metadata (2.9 kB)
Collecting farama-notifications>=0.0.1 (from gymnasium<1.1.0,>=0.29.1->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading Farama_Notifications-0.0.4-py3-none-any.whl.metadata (558 bytes)
Collecting webencodings (from html5lib>=1.1->yfinance<0.3,>=0.2->finrl==0.3.6)
  Downloading webencodings-0.5.1-py2.py3-none-any.whl.metadata (2.1 kB)
Collecting decorator (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading decorator-5.1.1-py3-none-any.whl.metadata (4.0 kB)
Collecting jedi>=0.16 (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading jedi-0.19.1-py2.py3-none-any.whl.metadata (22 kB)
Collecting matplotlib-inline (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading matplotlib_inline-0.1.7-py3-none-any.whl.metadata (3.9 kB)
Collecting prompt-toolkit<3.1.0,>=3.0.41 (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading prompt_toolkit-3.0.48-py3-none-any.whl.metadata (6.4 kB)
Collecting pygments>=2.4.0 (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading pygments-2.18.0-py3-none-any.whl.metadata (2.5 kB)
Collecting stack-data (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading stack_data-0.6.3-py3-none-any.whl.metadata (18 kB)
Collecting traitlets>=5.13.0 (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading traitlets-5.14.3-py3-none-any.whl.metadata (10 kB)
Collecting exceptiongroup (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading exceptiongroup-1.2.2-py3-none-any.whl.metadata (6.6 kB)
Collecting pexpect>4.3 (from ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading pexpect-4.9.0-py2.py3-none-any.whl.metadata (2.5 kB)
Collecting contourpy>=1.0.1 (from matplotlib>=1.4.0->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading contourpy-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.4 kB)
Collecting cycler>=0.10 (from matplotlib>=1.4.0->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)
Collecting fonttools>=4.22.0 (from matplotlib>=1.4.0->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading fonttools-4.54.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (163 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 163.7/163.7 kB 11.8 MB/s eta 0:00:00
 matplotlib>=1.4.0->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.metadata (6.3 kB)
Collecting pyparsing>=2.3.1 (from matplotlib>=1.4.0->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading pyparsing-3.2.0-py3-none-any.whl.metadata (5.0 kB)
Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/site-packages (from matplotlib>=1.4.0->pyfolio<0.10,>=0.9->finrl==0.3.6) (2.9.0.post0)
Collecting annotated-types>=0.6.0 (from pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)
Collecting pydantic-core==2.23.4 (from pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/site-packages (from requests<3,>2->alpaca-trade-api<4,>=3->finrl==0.3.6) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/site-packages (from requests<3,>2->alpaca-trade-api<4,>=3->finrl==0.3.6) (3.6)
Requirement already satisfied: greenlet!=0.4.17 in /usr/local/lib/python3.10/site-packages (from SQLAlchemy>=1.2.8->jqdatasdk<2,>=1->finrl==0.3.6) (3.1.1)
Collecting absl-py>=0.4 (from tensorboard>=2.9.1->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading absl_py-2.1.0-py3-none-any.whl.metadata (2.3 kB)
Collecting markdown>=2.6.8 (from tensorboard>=2.9.1->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading Markdown-3.7-py3-none-any.whl.metadata (7.0 kB)
Collecting tensorboard-data-server<0.8.0,>=0.7.0 (from tensorboard>=2.9.1->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading tensorboard_data_server-0.7.2-py3-none-manylinux_2_31_x86_64.whl.metadata (1.1 kB)
Collecting werkzeug>=1.0.1 (from tensorboard>=2.9.1->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading werkzeug-3.1.2-py3-none-any.whl.metadata (3.7 kB)
Collecting Cython>=3.0.10 (from thriftpy2!=0.5.1,>=0.3.9->jqdatasdk<2,>=1->finrl==0.3.6)
  Using cached Cython-3.0.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.2 kB)
Collecting ply<4.0,>=3.4 (from thriftpy2!=0.5.1,>=0.3.9->jqdatasdk<2,>=1->finrl==0.3.6)
  Downloading ply-3.11-py2.py3-none-any.whl.metadata (844 bytes)
Collecting networkx (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading networkx-3.4.2-py3-none-any.whl.metadata (6.3 kB)
Collecting jinja2 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)
Collecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cuda-runtime-cu12==12.4.127 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cuda-cupti-cu12==12.4.127 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cudnn-cu12==9.1.0.70 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cublas-cu12==12.4.5.8 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cufft-cu12==11.2.1.3 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-curand-cu12==10.3.5.147 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cusolver-cu12==11.6.1.9 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cusparse-cu12==12.3.1.170 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-nccl-cu12==2.21.5 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl.metadata (1.8 kB)
Collecting nvidia-nvtx-cu12==12.4.127 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.7 kB)
Collecting nvidia-nvjitlink-cu12==12.4.127 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting triton==3.1.0 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading triton-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.3 kB)
Collecting sympy==1.13.1 (from torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading sympy-1.13.1-py3-none-any.whl.metadata (12 kB)
Collecting mpmath<1.4,>=1.1.0 (from sympy==1.13.1->torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)
Collecting distlib<1,>=0.3.7 (from virtualenv!=20.21.1,>=20.0.24->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading distlib-0.3.9-py2.py3-none-any.whl.metadata (5.2 kB)
Collecting propcache>=0.2.0 (from yarl>=1.7.2->ccxt<4,>=3->finrl==0.3.6)
  Downloading propcache-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.7 kB)
Collecting jsonschema-specifications>=2023.03.6 (from jsonschema->ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading jsonschema_specifications-2024.10.1-py3-none-any.whl.metadata (3.0 kB)
Collecting referencing>=0.28.4 (from jsonschema->ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading referencing-0.35.1-py3-none-any.whl.metadata (2.8 kB)
Collecting rpds-py>=0.7.1 (from jsonschema->ray<3,>=2->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading rpds_py-0.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.2 kB)
Collecting textual>=0.41.0 (from memray->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading textual-0.85.2-py3-none-any.whl.metadata (5.6 kB)
Collecting markdown-it-py>=2.2.0 (from rich->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)
Collecting opencensus-context>=0.1.3 (from opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading opencensus_context-0.1.3-py2.py3-none-any.whl.metadata (3.3 kB)
Collecting google-api-core<3.0.0,>=1.0.0 (from opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading google_api_core-2.22.0-py3-none-any.whl.metadata (2.9 kB)
Collecting wrapt (from smart-open->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)
Collecting niltype<2.0,>=0.3 (from th->elegantrl@ git+https://github.com/AI4Finance-Foundation/ElegantRL.git#egg=elegantrl->finrl==0.3.6)
  Downloading niltype-1.0.2-py3-none-any.whl.metadata (4.3 kB)
Requirement already satisfied: pycparser in /usr/local/lib/python3.10/site-packages (from cffi>=1.12->cryptography>=2.6.1->ccxt<4,>=3->finrl==0.3.6) (2.21)
Collecting googleapis-common-protos<2.0.dev0,>=1.56.2 (from google-api-core<3.0.0,>=1.0.0->opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading googleapis_common_protos-1.65.0-py2.py3-none-any.whl.metadata (1.5 kB)
Collecting proto-plus<2.0.0dev,>=1.22.3 (from google-api-core<3.0.0,>=1.0.0->opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading proto_plus-1.25.0-py3-none-any.whl.metadata (2.2 kB)
Collecting google-auth<3.0.dev0,>=2.14.1 (from google-api-core<3.0.0,>=1.0.0->opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading google_auth-2.35.0-py2.py3-none-any.whl.metadata (4.7 kB)
Collecting parso<0.9.0,>=0.8.3 (from jedi>=0.16->ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading parso-0.8.4-py2.py3-none-any.whl.metadata (7.7 kB)
Collecting MarkupSafe>=2.0 (from jinja2->torch>=1.13->stable-baselines3>=2.0.0a5->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB)
Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich->stable-baselines3[extra]>=2.0.0a5->finrl==0.3.6)
  Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)
Collecting qdldl (from osqp>=0.6.2->cvxpy<2.0.0,>=1.1.19->pyportfolioopt<2,>=1->finrl==0.3.6)
  Downloading qdldl-0.1.7.post4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.7 kB)
Collecting ptyprocess>=0.5 (from pexpect>4.3->ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading ptyprocess-0.7.0-py2.py3-none-any.whl.metadata (1.3 kB)
Collecting wcwidth (from prompt-toolkit<3.1.0,>=3.0.41->ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading wcwidth-0.2.13-py2.py3-none-any.whl.metadata (14 kB)
Collecting executing>=1.2.0 (from stack-data->ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading executing-2.1.0-py2.py3-none-any.whl.metadata (8.9 kB)
Collecting asttokens>=2.1.0 (from stack-data->ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading asttokens-2.4.1-py2.py3-none-any.whl.metadata (5.2 kB)
Collecting pure-eval (from stack-data->ipython>=3.2.3->pyfolio<0.10,>=0.9->finrl==0.3.6)
  Downloading pure_eval-0.2.3-py3-none-any.whl.metadata (6.3 kB)
Collecting cachetools<6.0,>=2.0.0 (from google-auth<3.0.dev0,>=2.14.1->google-api-core<3.0.0,>=1.0.0->opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading cachetools-5.5.0-py3-none-any.whl.metadata (5.3 kB)
Collecting pyasn1-modules>=0.2.1 (from google-auth<3.0.dev0,>=2.14.1->google-api-core<3.0.0,>=1.0.0->opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading pyasn1_modules-0.4.1-py3-none-any.whl.metadata (3.5 kB)
Collecting rsa<5,>=3.1.4 (from google-auth<3.0.dev0,>=2.14.1->google-api-core<3.0.0,>=1.0.0->opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading rsa-4.9-py3-none-any.whl.metadata (4.2 kB)
Collecting linkify-it-py<3,>=1 (from markdown-it-py[linkify,plugins]>=2.1.0->textual>=0.41.0->memray->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading linkify_it_py-2.0.3-py3-none-any.whl.metadata (8.5 kB)
Collecting mdit-py-plugins (from markdown-it-py[linkify,plugins]>=2.1.0->textual>=0.41.0->memray->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading mdit_py_plugins-0.4.2-py3-none-any.whl.metadata (2.8 kB)
Collecting uc-micro-py (from linkify-it-py<3,>=1->markdown-it-py[linkify,plugins]>=2.1.0->textual>=0.41.0->memray->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading uc_micro_py-1.0.3-py3-none-any.whl.metadata (2.0 kB)
Collecting pyasn1<0.7.0,>=0.4.6 (from pyasn1-modules>=0.2.1->google-auth<3.0.dev0,>=2.14.1->google-api-core<3.0.0,>=1.0.0->opencensus->ray[default,tune]<3,>=2->finrl==0.3.6)
  Downloading pyasn1-0.6.1-py3-none-any.whl.metadata (8.4 kB)
Downloading alpaca_trade_api-3.2.0-py3-none-any.whl (34 kB)
Downloading deprecation-2.1.0-py2.py3-none-any.whl (11 kB)
Downloading msgpack-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (323 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 323.7/323.7 kB 22.4 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (705 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 705.5/705.5 kB 41.8 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.0/4.0 MB 75.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 196.7/196.7 kB 14.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 77.3/77.3 kB 6.0 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.9/61.9 kB 3.3 MB/s eta 0:00:00
anylinux2014_x86_64.whl (66.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.0/66.0 MB 9.9 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.3/13.3 MB 90.5 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 183.9/183.9 kB 15.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.1/101.1 kB 8.6 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 43.9 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 51.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 147.9/147.9 kB 11.2 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.9/97.9 kB 8.1 MB/s eta 0:00:00
anylinux_2_28_x86_64.whl (4.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.0/4.0 MB 52.8 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 44.3 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (117 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.4/117.4 kB 9.1 MB/s eta 0:00:00
anylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (241 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 241.9/241.9 kB 17.2 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.9/5.9 MB 62.3 MB/s eta 0:00:00
nasium-1.0.0-py3-none-any.whl (958 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 958.1/958.1 kB 45.5 MB/s eta 0:00:00
l5lib-1.1-py2.py3-none-any.whl (112 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 112.2/112.2 kB 8.8 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 819.9/819.9 kB 39.8 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 301.8/301.8 kB 20.1 MB/s eta 0:00:00
l-5.3.0-cp310-cp310-manylinux_2_28_x86_64.whl (5.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.0/5.0 MB 56.0 MB/s eta 0:00:00
atplotlib-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.3/8.3 MB 70.8 MB/s eta 0:00:00
ultitasking-0.0.11-py3-none-any.whl (8.5 kB)
Downloading pillow-11.0.0-cp310-cp310-manylinux_2_28_x86_64.whl (4.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 64.7 MB/s eta 0:00:00
etheus_client-0.21.0-py3-none-any.whl (54 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.7/54.7 kB 4.1 MB/s eta 0:00:00
anylinux2014_x86_64.whl (316 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 316.6/316.6 kB 21.8 MB/s eta 0:00:00
anylinux_2_5_x86_64.manylinux1_x86_64.whl (2.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.7/2.7 MB 52.4 MB/s eta 0:00:00
anylinux_2_28_x86_64.whl (40.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.0/40.0 MB 16.2 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 434.9/434.9 kB 27.6 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 53.1 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.0/45.0 kB 3.4 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 294.9/294.9 kB 21.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.5/5.5 MB 68.2 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.7/101.7 kB 7.5 MB/s eta 0:00:00
anylinux1_x86_64.whl (906.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 906.4/906.4 MB 2.0 MB/s eta 0:00:00
anylinux2014_x86_64.whl (363.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 363.4/363.4 MB 4.1 MB/s eta 0:00:00
anylinux2014_x86_64.whl (13.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.8/13.8 MB 91.3 MB/s eta 0:00:00
anylinux2014_x86_64.whl (24.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.6/24.6 MB 71.5 MB/s eta 0:00:00
e_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (883 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 883.7/883.7 kB 42.7 MB/s eta 0:00:00
anylinux2014_x86_64.whl (664.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 664.8/664.8 MB 2.8 MB/s eta 0:00:00
anylinux2014_x86_64.whl (211.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 211.5/211.5 MB 4.8 MB/s eta 0:00:00
anylinux2014_x86_64.whl (56.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.3/56.3 MB 12.2 MB/s eta 0:00:00
anylinux2014_x86_64.whl (127.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 127.9/127.9 MB 7.9 MB/s eta 0:00:00
anylinux2014_x86_64.whl (207.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.5/207.5 MB 6.2 MB/s eta 0:00:00
anylinux2014_x86_64.whl (188.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 188.7/188.7 MB 5.9 MB/s eta 0:00:00
anylinux2014_x86_64.whl (21.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 51.9 MB/s eta 0:00:00
anylinux2014_x86_64.whl (99 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.1/99.1 kB 7.6 MB/s eta 0:00:00
py-1.13.1-py3-none-any.whl (6.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.2/6.2 MB 55.4 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (209.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 209.5/209.5 MB 5.2 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 144.2/144.2 kB 10.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 82.2 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.8/58.8 kB 4.6 MB/s eta 0:00:00
anylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (106 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 106.8/106.8 kB 8.8 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (318 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 318.7/318.7 kB 17.5 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 201.4/201.4 kB 15.8 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 179.6/179.6 kB 9.2 MB/s eta 0:00:00
a-4.23.0-py3-none-any.whl (88 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 88.5/88.5 kB 6.7 MB/s eta 0:00:00
emray-1.14.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (8.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.3/8.3 MB 93.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 242.4/242.4 kB 13.6 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 128.2/128.2 kB 10.4 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (62.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.5/62.5 MB 11.4 MB/s eta 0:00:00
anylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (287 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 287.3/287.3 kB 19.7 MB/s eta 0:00:00
e-2.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.0/14.0 MB 82.0 MB/s eta 0:00:00
art_open-7.0.5-py3-none-any.whl (61 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.4/61.4 kB 4.7 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.4/56.4 kB 4.2 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.7/133.7 kB 10.1 MB/s eta 0:00:00
eout-4.0.3-py3-none-any.whl (5.7 kB)
Downloading attrs-24.2.0-py3-none-any.whl (63 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.0/63.0 kB 5.4 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 56.6 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (322 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 322.0/322.0 kB 24.0 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB)
Downloading distlib-0.3.9-py2.py3-none-any.whl (468 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 469.0/469.0 kB 31.9 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (218 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 218.9/218.9 kB 15.5 MB/s eta 0:00:00
a_Notifications-0.0.4-py3-none-any.whl (2.5 kB)
Downloading fonttools-4.54.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.6/4.6 MB 80.7 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 156.5/156.5 kB 12.0 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 56.9 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.3/133.3 kB 10.4 MB/s eta 0:00:00
a_specifications-2024.10.1-py3-none-any.whl (18 kB)
Downloading kiwisolver-1.4.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 60.6 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 106.3/106.3 kB 8.1 MB/s eta 0:00:00
arkdown_it_py-3.0.0-py3-none-any.whl (87 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 87.5/87.5 kB 6.6 MB/s eta 0:00:00
ultidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (124 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 124.6/124.6 kB 9.5 MB/s eta 0:00:00
anylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (297 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 297.5/297.5 kB 20.9 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 109.5/109.5 kB 7.6 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.8/63.8 kB 5.4 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 49.6/49.6 kB 3.9 MB/s eta 0:00:00
pt_toolkit-3.0.48-py3-none-any.whl (386 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.6/386.6 kB 25.7 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (208 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 208.9/208.9 kB 14.5 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (288 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 288.7/288.7 kB 20.4 MB/s eta 0:00:00
ents-2.18.0-py3-none-any.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 54.7 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 106.9/106.9 kB 8.1 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (360 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 360.6/360.6 kB 17.4 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.4/10.4 MB 64.1 MB/s eta 0:00:00
anylinux_2_31_x86_64.whl (6.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.6/6.6 MB 85.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 614.9/614.9 kB 37.0 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.4/85.4 kB 6.8 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 224.4/224.4 kB 16.9 MB/s eta 0:00:00
atplotlib_inline-0.1.7-py3-none-any.whl (9.9 kB)
Downloading networkx-3.4.2-py3-none-any.whl (1.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 56.7 MB/s eta 0:00:00
anylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (80 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.3/80.3 kB 6.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 209.0/209.0 kB 15.8 MB/s eta 0:00:00
mon_protos-1.65.0-py2.py3-none-any.whl (220 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 220.9/220.9 kB 16.8 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (20 kB)
Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 34.1 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 103.7/103.7 kB 9.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 50.1/50.1 kB 4.2 MB/s eta 0:00:00
anylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 43.1 MB/s eta 0:00:00
odules-0.4.1-py3-none-any.whl (181 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 181.5/181.5 kB 14.6 MB/s eta 0:00:00
dit_py_plugins-0.4.2-py3-none-any.whl (55 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 55.3/55.3 kB 4.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 83.1/83.1 kB 6.6 MB/s eta 0:00:00
icro_py-1.0.3-py3-none-any.whl (6.2 kB)
Building wheels for collected packages: finrl, pyfolio, elegantrl, empyrical, peewee, thriftpy2
  Building wheel for finrl (pyproject.toml) ... e=finrl-0.3.6-py3-none-any.whl size=4691755 sha256=3eda17b41326452cd26c735c3d8be4c6992e404366746fdf42d3e69aadd703a4
  Stored in directory: /tmp/pip-ephem-wheel-cache-jvw2nji8/wheels/72/3b/1a/0fc805a8cc65ecd5bfe4f74a3c586b6075678b8ba53fd8f749
  Building wheel for pyfolio (setup.py) ... e=pyfolio-0.9.2-py3-none-any.whl size=88650 sha256=cc832264ce3ba0dd48dde208fe67ff892c6f9fdaef008d70cbeb5e069ea0e698
  Stored in directory: /root/.cache/pip/wheels/71/38/bc/e53700cfd8b0ad6b539d2fbaaf060ed8a299e7622a5b86ef42
  Building wheel for elegantrl (setup.py) ... e=ElegantRL-0.3.10-py3-none-any.whl size=408744 sha256=7324c474f0d5242d209babd26b6e67669b0ce23c0a0112980a711de177bec7da
  Stored in directory: /tmp/pip-ephem-wheel-cache-jvw2nji8/wheels/c0/51/a5/b05f165548221bc570f7223babd33e2992fa873cdcebe2d229
  Building wheel for empyrical (setup.py) ... pyrical: filename=empyrical-0.5.5-py3-none-any.whl size=39754 sha256=53316b77d5897b900356be7586744ed0cd36bd234c4ac0e33c132954f914a907
  Stored in directory: /root/.cache/pip/wheels/0e/2e/f2/d6d2d9a1eb8fbbd9949bb5d4c00f753e3b74e5bd7ed10b1d36
  Building wheel for peewee (pyproject.toml) ... e=peewee-3.17.7-cp310-cp310-linux_x86_64.whl size=300451 sha256=a5413d70bdcced1d1a6ccf1a11c5dfd210bbac76f7f96b0b6c5f3699dbf6aefd
  Stored in directory: /root/.cache/pip/wheels/8d/0e/f8/48eb93a200fca4c502d7590613616fa4d2c9533f7308f9e28a
  Building wheel for thriftpy2 (pyproject.toml) ... e=thriftpy2-0.5.2-cp310-cp310-linux_x86_64.whl size=841613 sha256=5ecc712e8366c2510c265ac02d81f6b90c2f42331dc57b7f71f680e1e678724e
  Stored in directory: /root/.cache/pip/wheels/90/28/5f/279788e86e2eaccb3edc73bde9c815a9527602739a56344ff7
Successfully built finrl pyfolio elegantrl empyrical peewee thriftpy2
Installing collected packages: webencodings, wcwidth, py-spy, pure-eval, ptyprocess, ply, peewee, opencensus-context, multitasking, msgpack, mpmath, korean-lunar-calendar, farama-notifications, distlib, colorful, wrapt, websockets, websocket-client, urllib3, uc-micro-py, traitlets, toolz, threadpoolctl, tensorboard-data-server, sympy, soupsieve, rpds-py, PyYAML, pyparsing, pymysql, pyluach, pygments, pygame, pydantic-core, pyasn1, pyarrow, psutil, protobuf, propcache, prompt-toolkit, prometheus-client, pillow, pexpect, parso, opencv-python, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, niltype, networkx, multidict, mdurl, MarkupSafe, markdown, lxml, kiwisolver, joblib, html5lib, grpcio, fsspec, frozenlist, frozendict, fonttools, filelock, executing, exceptiongroup, deprecation, decorator, Cython, cycler, contourpy, cloudpickle, click, cachetools, attrs, async-timeout, asttokens, annotated-types, ale-py, aiohappyeyeballs, absl-py, yarl, werkzeug, virtualenv, triton, thriftpy2, th, tensorboardX, stack-data, smart-open, scs, scikit-learn, rsa, referencing, qdldl, pydantic, pycares, pyasn1-modules, proto-plus, nvidia-cusparse-cu12, nvidia-cudnn-cu12, matplotlib-inline, matplotlib, markdown-it-py, linkify-it-py, jinja2, jedi, gymnasium, googleapis-common-protos, ecos, cryptography, clarabel, beautifulsoup4, aiosignal, yfinance, tensorboard, stockstats, seaborn, rich, pandas-datareader, osqp, nvidia-cusolver-cu12, mdit-py-plugins, jsonschema-specifications, jqdatasdk, ipython, google-auth, exchange-calendars, elegantrl, aiohttp, aiodns, torch, jsonschema, google-api-core, empyrical, cvxpy, ccxt, alpaca-trade-api, aiohttp-cors, textual, stable-baselines3, ray, pyportfolioopt, pyfolio, opencensus, memray, finrl
  Attempting uninstall: urllib3
    Found existing installation: urllib3 2.1.0
    Uninstalling urllib3-2.1.0:
      Successfully uninstalled urllib3-2.1.0
Successfully installed Cython-3.0.11 MarkupSafe-3.0.2 PyYAML-6.0.1 absl-py-2.1.0 aiodns-3.2.0 aiohappyeyeballs-2.4.3 aiohttp-3.10.10 aiohttp-cors-0.7.0 aiosignal-1.3.1 ale-py-0.10.1 alpaca-trade-api-3.2.0 annotated-types-0.7.0 asttokens-2.4.1 async-timeout-4.0.3 attrs-24.2.0 beautifulsoup4-4.12.3 cachetools-5.5.0 ccxt-3.1.60 clarabel-0.9.0 click-8.1.7 cloudpickle-3.1.0 colorful-0.5.6 contourpy-1.3.0 cryptography-43.0.3 cvxpy-1.5.3 cycler-0.12.1 decorator-5.1.1 deprecation-2.1.0 distlib-0.3.9 ecos-2.0.14 elegantrl-0.3.10 empyrical-0.5.5 exceptiongroup-1.2.2 exchange-calendars-4.5.7 executing-2.1.0 farama-notifications-0.0.4 filelock-3.16.1 finrl-0.3.6 fonttools-4.54.1 frozendict-2.4.6 frozenlist-1.5.0 fsspec-2024.10.0 google-api-core-2.22.0 google-auth-2.35.0 googleapis-common-protos-1.65.0 grpcio-1.67.1 gymnasium-1.0.0 html5lib-1.1 ipython-8.29.0 jedi-0.19.1 jinja2-3.1.4 joblib-1.4.2 jqdatasdk-1.9.6 jsonschema-4.23.0 jsonschema-specifications-2024.10.1 kiwisolver-1.4.7 korean-lunar-calendar-0.3.1 linkify-it-py-2.0.3 lxml-5.3.0 markdown-3.7 markdown-it-py-3.0.0 matplotlib-3.9.2 matplotlib-inline-0.1.7 mdit-py-plugins-0.4.2 mdurl-0.1.2 memray-1.14.0 mpmath-1.3.0 msgpack-1.0.3 multidict-6.1.0 multitasking-0.0.11 networkx-3.4.2 niltype-1.0.2 nvidia-cublas-cu12-12.4.5.8 nvidia-cuda-cupti-cu12-12.4.127 nvidia-cuda-nvrtc-cu12-12.4.127 nvidia-cuda-runtime-cu12-12.4.127 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-nccl-cu12-2.21.5 nvidia-nvjitlink-cu12-12.4.127 nvidia-nvtx-cu12-12.4.127 opencensus-0.11.4 opencensus-context-0.1.3 opencv-python-4.10.0.84 osqp-0.6.7.post3 pandas-datareader-0.10.0 parso-0.8.4 peewee-3.17.7 pexpect-4.9.0 pillow-11.0.0 ply-3.11 prometheus-client-0.21.0 prompt-toolkit-3.0.48 propcache-0.2.0 proto-plus-1.25.0 protobuf-5.28.3 psutil-6.1.0 ptyprocess-0.7.0 pure-eval-0.2.3 py-spy-0.4.0 pyarrow-18.0.0 pyasn1-0.6.1 pyasn1-modules-0.4.1 pycares-4.4.0 pydantic-2.9.2 pydantic-core-2.23.4 pyfolio-0.9.2 pygame-2.6.1 pygments-2.18.0 pyluach-2.2.0 pymysql-1.1.1 pyparsing-3.2.0 pyportfolioopt-1.5.5 qdldl-0.1.7.post4 ray-2.38.0 referencing-0.35.1 rich-13.9.4 rpds-py-0.20.1 rsa-4.9 scikit-learn-1.5.2 scs-3.2.7 seaborn-0.13.2 smart-open-7.0.5 soupsieve-2.6 stable-baselines3-2.4.0a11 stack-data-0.6.3 stockstats-0.5.4 sympy-1.13.1 tensorboard-2.18.0 tensorboard-data-server-0.7.2 tensorboardX-2.6.2.2 textual-0.85.2 th-0.4.1 threadpoolctl-3.5.0 thriftpy2-0.5.2 toolz-1.0.0 torch-2.5.1 traitlets-5.14.3 triton-3.1.0 uc-micro-py-1.0.3 urllib3-1.26.20 virtualenv-20.27.1 wcwidth-0.2.13 webencodings-0.5.1 websocket-client-1.8.0 websockets-10.4 werkzeug-3.1.2 wrapt-1.16.0 yarl-1.17.1 yfinance-0.2.48
{"id":"0297673910af4be6a000b0ad6ccf7377","pip_warning":{"packages":["cycler","google","kiwisolver","matplotlib_inline","pexpect","prompt_toolkit","wcwidth"]}}
import warnings
warnings.filterwarnings("ignore")
from finrl.meta.preprocessor.preprocessors import FeatureEngineer, data_split
from finrl.meta.env_stock_trading.env_stocktrading import StockTradingEnv
from finrl.agents.stablebaselines3.models import DRLAgent, DRLEnsembleAgent
from finrl.plot import backtest_stats, backtest_plot, get_daily_return, get_baseline
from stable_baselines3 import A2C, PPO, DDPG, SAC, TD3
import numpy as np
import matplotlib.pyplot as plt
import datetime
import pandas as pd
%matplotlib inline
from pprint import pprint
import itertools
import sys
sys.path.append("../FinRL-Library")
import os
from finrl.main import check_and_make_directories
from finrl.config import (
    DATA_SAVE_DIR,
    TRAINED_MODEL_DIR,
    TENSORBOARD_LOG_DIR,
    RESULTS_DIR,
    INDICATORS,
    TRAIN_START_DATE,
    TRAIN_END_DATE,
    TEST_START_DATE,
    TEST_END_DATE,
    TRADE_START_DATE,
    TRADE_END_DATE,
)

check_and_make_directories([DATA_SAVE_DIR, TRAINED_MODEL_DIR, TENSORBOARD_LOG_DIR, RESULTS_DIR])
df= pd.read_csv("sp500_stocks.csv")
df.head()
Date Symbol Adj Close Close High Low Open Volume
0 2010-01-04 MMM 44.254017 69.414719 69.774246 69.122070 69.473244 3640265.0
1 2010-01-05 MMM 43.976837 68.979935 69.590302 68.311035 69.230766 3405012.0
2 2010-01-06 MMM 44.600502 69.958191 70.735786 69.824417 70.133781 6301126.0
3 2010-01-07 MMM 44.632484 70.008362 70.033447 68.662209 69.665550 5346240.0
4 2010-01-08 MMM 44.946964 70.501671 70.501671 69.648827 69.974915 4073337.0
# Rename specific columns to lowercase
df.rename(columns={'Symbol': 'tic','Date': 'date','Volume': 'volume', 'Close': 'close', 'Adj Close': 'adj_close', 'High': 'high', 'Low': 'low', 'Open': 'open'}, inplace=True)

# Optional: Verify the change
print(df.columns)
Index(['date', 'tic', 'adj_close', 'close', 'high', 'low', 'open', 'volume'], dtype='object')
df.sort_values(['date','tic'],ignore_index=True).head()
date tic adj_close close high low open volume
0 2010-01-04 A 20.084951 22.389128 22.625179 22.267525 22.453505 3815561.0
1 2010-01-04 AAL 4.496878 4.770000 4.940000 4.660000 4.840000 9837300.0
2 2010-01-04 AAPL 6.454506 7.643214 7.660714 7.585000 7.622500 493729600.0
3 2010-01-04 ABBV NaN NaN NaN NaN NaN NaN
4 2010-01-04 ABNB NaN NaN NaN NaN NaN NaN
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1852046 entries, 0 to 1852045
Data columns (total 8 columns):
 #   Column     Dtype  
---  ------     -----  
 0   date       object 
 1   tic        object 
 2   adj_close  float64
 3   close      float64
 4   high       float64
 5   low        float64
 6   open       float64
 7   volume     float64
dtypes: float64(6), object(2)
memory usage: 113.0+ MB
df.tail()
date tic adj_close close high low open volume
1852041 2024-08-14 ZTS 183.380005 183.380005 188.500000 182.490005 188.050003 2153100.0
1852042 2024-08-15 ZTS 184.080002 184.080002 186.169998 182.710007 184.520004 1891900.0
1852043 2024-08-16 ZTS 183.710007 183.710007 184.610001 182.250000 183.720001 1588400.0
1852044 2024-08-19 ZTS 184.479996 184.479996 184.520004 182.559998 183.800003 1637000.0
1852045 2024-08-20 ZTS 183.600006 183.600006 184.759995 182.900101 184.479996 1186374.0
from pathlib import Path
from ydata_profiling import ProfileReport
from ydata_profiling.utils.cache import cache_file

if __name__ == "__main__":
    file_name = "/content/drive/MyDrive/Assets/sp500_stocks.csv"

    sp500 = pd.read_csv(file_name)

    profile = ProfileReport(sp500, title="S&P 500 Stocks", explorative=True)
    profile.to_file(Path("sp500_stocks_report.html"))
{"model_id":"c4f31b8d49c24705bf929cae8995e341","version_major":2,"version_minor":0}
{"model_id":"afe3efa3d19e4e26aab5c202e2fa5d35","version_major":2,"version_minor":0}
{"model_id":"3f879989622e40d3912233212e08dcd0","version_major":2,"version_minor":0}
{"model_id":"0dc6f78aab5e43dba7b9d149f3ce0209","version_major":2,"version_minor":0}
profile
unique_tickers = df['tic'].unique()

random_tickers = pd.Series(unique_tickers).sample(n=30, random_state=42)

print(random_tickers)
268     JCI
73      BMY
289     LEN
155     DOV
104     CVX
280    KLAC
392     DGX
124     STZ
68       BX
244     HII
9         A
195     FIS
304     MMC
84      CPB
373      PM
390     PWR
498     XYL
30      AWK
317     MGM
407     RCL
493      WY
494     WMB
225     HIG
227     HCA
76      BRO
464     URI
473    VRTX
402    RVTY
101     CRL
335    NTAP
dtype: object
filtered_df = df[df['tic'].isin(random_tickers)]
print(filtered_df)
               date  tic   adj_close       close        high         low  \
33138    2010-01-04    A   20.084951   22.389128   22.625179   22.267525   
33139    2010-01-05    A   19.866777   22.145924   22.331903   22.002861   
33140    2010-01-06    A   19.796186   22.067240   22.174536   22.002861   
33141    2010-01-07    A   19.770527   22.038628   22.045780   21.816881   
33142    2010-01-08    A   19.764101   22.031473   22.067240   21.745352   
...             ...  ...         ...         ...         ...         ...   
1837313  2024-08-14  XYL  131.490005  131.490005  132.229996  130.580002   
1837314  2024-08-15  XYL  133.190002  133.190002  134.270004  131.779999   
1837315  2024-08-16  XYL  132.800003  132.800003  133.630005  131.970001   
1837316  2024-08-19  XYL  134.380005  134.380005  134.380005  132.580002   
1837317  2024-08-20  XYL  134.149994  134.149994  135.600006  133.199997   

               open     volume  
33138     22.453505  3815561.0  
33139     22.324751  4186031.0  
33140     22.067240  3243779.0  
33141     22.017166  3095172.0  
33142     21.917025  3733918.0  
...             ...        ...  
1837313  131.720001   813400.0  
1837314  132.949997   739000.0  
1837315  133.000000  1956500.0  
1837316  133.039993   751200.0  
1837317  134.399994   761699.0  

[110460 rows x 8 columns]
filtered_df.info()
<class 'pandas.core.frame.DataFrame'>
Index: 110460 entries, 33138 to 1837317
Data columns (total 8 columns):
 #   Column     Non-Null Count   Dtype  
---  ------     --------------   -----  
 0   date       110460 non-null  object 
 1   tic        110460 non-null  object 
 2   adj_close  109407 non-null  float64
 3   close      109407 non-null  float64
 4   high       109407 non-null  float64
 5   low        109407 non-null  float64
 6   open       109407 non-null  float64
 7   volume     109407 non-null  float64
dtypes: float64(6), object(2)
memory usage: 7.6+ MB
df.columns
Index(['date', 'tic', 'adj_close', 'close', 'high', 'low', 'open', 'volume'], dtype='object')
INDICATORS=['macd',
 'boll_ub',
 'boll_lb',
 'rsi_30',
 'cci_30',
 'dx_30',
 'close_30_sma',
 'close_60_sma']
TRAIN_START_DATE = '2010-01-04'
TRAIN_END_DATE = '2021-06-01'
TEST_START_DATE = '2022-01-01'
TEST_END_DATE = '2024-08-20'

fe = FeatureEngineer(
    use_technical_indicator=True,
    tech_indicator_list=INDICATORS,
    use_turbulence=True,
    user_defined_feature=False
)

processed = fe.preprocess_data(filtered_df)
Successfully added technical indicators
Successfully added turbulence index
train_data = processed[(processed['date'] >= TRAIN_START_DATE) & (processed['date'] <= TRAIN_END_DATE)]
test_data = processed[(processed['date'] >= TEST_START_DATE) & (processed['date'] <= TEST_END_DATE)]

train_data.reset_index(drop=True, inplace=True)
test_data.reset_index(drop=True, inplace=True)

print("Training data shape:", train_data.shape)
print("Testing data shape:", test_data.shape)

print("Processed data head:")
print(processed.head())
Training data shape: (77544, 17)
Testing data shape: (17847, 17)
Processed data head:
         date  tic  adj_close      close       high        low       open  \
0  2010-01-04    A  20.084951  22.389128  22.625179  22.267525  22.453505   
1  2010-01-04  AWK  16.174004  22.650000  22.860001  22.410000  22.410000   
2  2010-01-04  BMY  15.781889  25.629999  25.700001  25.299999  25.410000   
3  2010-01-04  BRO   7.635339   9.005000   9.045000   8.930000   9.025000   
4  2010-01-04   BX   6.540053  13.710000  13.750000  13.150000  13.250000   

       volume  macd    boll_ub    boll_lb  rsi_30     cci_30  dx_30  \
0   3815561.0   0.0  22.611468  21.923583     0.0 -66.666667  100.0   
1   2176100.0   0.0  22.611468  21.923583     0.0 -66.666667  100.0   
2  14376100.0   0.0  22.611468  21.923583     0.0 -66.666667  100.0   
3   1437600.0   0.0  22.611468  21.923583     0.0 -66.666667  100.0   
4   3862700.0   0.0  22.611468  21.923583     0.0 -66.666667  100.0   

   close_30_sma  close_60_sma  turbulence  
0     22.389128     22.389128         0.0  
1     22.650000     22.650000         0.0  
2     25.629999     25.629999         0.0  
3      9.005000      9.005000         0.0  
4     13.710000     13.710000         0.0  
print(processed.info())
print(processed.columns)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 99414 entries, 0 to 99413
Data columns (total 17 columns):
 #   Column        Non-Null Count  Dtype  
---  ------        --------------  -----  
 0   date          99414 non-null  object 
 1   tic           99414 non-null  object 
 2   adj_close     99414 non-null  float64
 3   close         99414 non-null  float64
 4   high          99414 non-null  float64
 5   low           99414 non-null  float64
 6   open          99414 non-null  float64
 7   volume        99414 non-null  float64
 8   macd          99414 non-null  float64
 9   boll_ub       99414 non-null  float64
 10  boll_lb       99414 non-null  float64
 11  rsi_30        99414 non-null  float64
 12  cci_30        99414 non-null  float64
 13  dx_30         99414 non-null  float64
 14  close_30_sma  99414 non-null  float64
 15  close_60_sma  99414 non-null  float64
 16  turbulence    99414 non-null  float64
dtypes: float64(15), object(2)
memory usage: 12.9+ MB
None
Index(['date', 'tic', 'adj_close', 'close', 'high', 'low', 'open', 'volume',
       'macd', 'boll_ub', 'boll_lb', 'rsi_30', 'cci_30', 'dx_30',
       'close_30_sma', 'close_60_sma', 'turbulence'],
      dtype='object')
stock_dimension = len(processed.tic.unique())
state_space = 1 + 2*stock_dimension + len(INDICATORS)*stock_dimension
print(f"Stock Dimension: {stock_dimension}, State Space: {state_space}")
Stock Dimension: 27, State Space: 271
env_kwargs = {
    "hmax": 100,
    "initial_amount": 10000000,
    "buy_cost_pct": 0.001,
    "sell_cost_pct": 0.001,
    "state_space": state_space,
    "stock_dim": stock_dimension,
    "tech_indicator_list": INDICATORS,
    "action_space": stock_dimension,
    "reward_scaling": 1e-4,
    "print_verbosity":5
}
rebalance_window = 20 # rebalance_window is the number of days to retrain the model
validation_window = 20 # validation_window is the number of days to do validation and trading (e.g. if validation_window=63, then both validation and trading period will be 63 days)

ensemble_agent = DRLEnsembleAgent(df=processed,
                 train_period=(TRAIN_START_DATE,TRAIN_END_DATE),
                 val_test_period=(TEST_START_DATE,TEST_END_DATE),
                 rebalance_window=rebalance_window,
                 validation_window=validation_window,
                 **env_kwargs)
ensemble_agent
<finrl.agents.stablebaselines3.models.DRLEnsembleAgent at 0x7f1b367bfe50>
A2C_model_kwargs = {
    'n_steps': 5,  # Number of steps to run for each environment before updating
    'ent_coef': 0.005,  # Entropy coefficient for exploration
    'learning_rate': 0.0007,  # Learning rate for the agent
}
PPO_model_kwargs = {
    "ent_coef": 0.01,  # Entropy coefficient to ensure exploration
    "n_steps": 2048,  # Number of steps per environment update
    "learning_rate": 0.00025,  # Learning rate for the optimizer
    "batch_size": 128,  # Batch size for each training step
}
SAC_model_kwargs = {
    "buffer_size": 10_00,  # Size of the replay buffer
    "learning_rate": 0.0003,  # Learning rate for SAC agent
    "batch_size": 256,  # Batch size for the optimizer
    "ent_coef": 'auto',  # Entropy coefficient (auto-tuned by default)
}
timesteps_dict = {
    'a2c': 5_00,  # A2C agent timesteps
    'ppo': 5_00,  # PPO agent timesteps
    'sac': 5_00  # SAC agent timesteps
}
from tqdm import tqdm

# Define the model kwargs and timesteps for the ensemble strategy
model_kwargs_dict = {
    'A2C': A2C_model_kwargs,
    'PPO': PPO_model_kwargs,
    'SAC': SAC_model_kwargs
}

# Use tqdm to track the progress of model training
ensemble_models_summary = {}

# Added total=len(model_kwargs_dict) to tqdm to indicate 5 models are being trained
for model_name in tqdm(model_kwargs_dict, desc="Training Ensemble Models", total=len(model_kwargs_dict)):
    print(f"\nRunning {model_name}...")

    # Simulate some progress or steps within each model training
    # For actual models, it may take time
    ensemble_models_summary[model_name] = ensemble_agent.run_ensemble_strategy(
        A2C_model_kwargs=A2C_model_kwargs,
        PPO_model_kwargs=PPO_model_kwargs,
        SAC_model_kwargs=SAC_model_kwargs,
        DDPG_model_kwargs=None,
        TD3_model_kwargs=None, 
        timesteps_dict=timesteps_dict
    )

    # Print after each model is trained
    print(f"{model_name} training completed!")
Training Ensemble Models:   0%|          | 0/3 [00:00<?, ?it/s]

Running A2C...
============Start Ensemble Strategy============
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-01-03
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_40_9
-------------------------------------
| time/                 |           |
|    fps                | 147       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -290      |
|    reward             | 1.7664002 |
|    std                | 1         |
|    value_loss         | 90.1      |
-------------------------------------
======a2c Validation from:  2022-01-03 to  2022-02-01
a2c Sharpe Ratio:  -0.4239222070975703
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_40_8
======sac Validation from:  2022-01-03 to  2022-02-01
sac Sharpe Ratio:  -0.1606888934303123
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_40_8
------------------------------------
| time/              |             |
|    fps             | 175         |
|    iterations      | 1           |
|    time_elapsed    | 11          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.28363752 |
------------------------------------
======ppo Validation from:  2022-01-03 to  2022-02-01
ppo Sharpe Ratio:  -0.27343880394015974
======Best Model Retraining from:  2010-01-04 to  2022-02-01
======Trading from:  2022-02-01 to  2022-03-02
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-02-01
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_60_7
-------------------------------------
| time/                 |           |
|    fps                | 146       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.6     |
|    explained_variance | -1.19e-07 |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -532      |
|    reward             | 2.048322  |
|    std                | 1.01      |
|    value_loss         | 244       |
-------------------------------------
======a2c Validation from:  2022-02-01 to  2022-03-02
a2c Sharpe Ratio:  -0.4533450444127557
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_60_7
======sac Validation from:  2022-02-01 to  2022-03-02
sac Sharpe Ratio:  -0.4543244152324558
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_60_7
------------------------------------
| time/              |             |
|    fps             | 173         |
|    iterations      | 1           |
|    time_elapsed    | 11          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.17826746 |
------------------------------------
======ppo Validation from:  2022-02-01 to  2022-03-02
ppo Sharpe Ratio:  -0.6577181389067889
======Best Model Retraining from:  2010-01-04 to  2022-03-02
======Trading from:  2022-03-02 to  2022-03-30
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-03-02
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_80_7
-------------------------------------
| time/                 |           |
|    fps                | 152       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.1     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -154      |
|    reward             | 1.1114376 |
|    std                | 0.991     |
|    value_loss         | 29.1      |
-------------------------------------
======a2c Validation from:  2022-03-02 to  2022-03-30
a2c Sharpe Ratio:  0.8648916178541377
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_80_7
======sac Validation from:  2022-03-02 to  2022-03-30
sac Sharpe Ratio:  0.9277441563223704
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_80_7
---------------------------------
| time/              |          |
|    fps             | 172      |
|    iterations      | 1        |
|    time_elapsed    | 11       |
|    total_timesteps | 2048     |
| train/             |          |
|    reward          | 2.566823 |
---------------------------------
======ppo Validation from:  2022-03-02 to  2022-03-30
ppo Sharpe Ratio:  0.684604772329929
======Best Model Retraining from:  2010-01-04 to  2022-03-30
======Trading from:  2022-03-30 to  2022-04-28
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-03-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_100_7
-------------------------------------
| time/                 |           |
|    fps                | 148       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -21       |
|    reward             | 0.8680809 |
|    std                | 1         |
|    value_loss         | 2.42      |
-------------------------------------
======a2c Validation from:  2022-03-30 to  2022-04-28
a2c Sharpe Ratio:  -0.3425299661742234
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_100_7
======sac Validation from:  2022-03-30 to  2022-04-28
sac Sharpe Ratio:  -0.5635180096624839
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_100_7
-----------------------------------
| time/              |            |
|    fps             | 173        |
|    iterations      | 1          |
|    time_elapsed    | 11         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.14253771 |
-----------------------------------
======ppo Validation from:  2022-03-30 to  2022-04-28
ppo Sharpe Ratio:  -0.49071243438413437
======Best Model Retraining from:  2010-01-04 to  2022-04-28
======Trading from:  2022-04-28 to  2022-05-26
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-04-28
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_120_7
-------------------------------------
| time/                 |           |
|    fps                | 147       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 5.96e-08  |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | 186       |
|    reward             | 1.4454784 |
|    std                | 1         |
|    value_loss         | 50.7      |
-------------------------------------
======a2c Validation from:  2022-04-28 to  2022-05-26
a2c Sharpe Ratio:  0.5194515329221369
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_120_7
======sac Validation from:  2022-04-28 to  2022-05-26
sac Sharpe Ratio:  0.1860952923312625
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_120_7
------------------------------------
| time/              |             |
|    fps             | 169         |
|    iterations      | 1           |
|    time_elapsed    | 12          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | 0.024773166 |
------------------------------------
======ppo Validation from:  2022-04-28 to  2022-05-26
ppo Sharpe Ratio:  0.15358212504806343
======Best Model Retraining from:  2010-01-04 to  2022-05-26
======Trading from:  2022-05-26 to  2022-06-27
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-05-26
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_140_7
-------------------------------------
| time/                 |           |
|    fps                | 140       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -87.3     |
|    reward             | 0.9521253 |
|    std                | 1.01      |
|    value_loss         | 8.55      |
-------------------------------------
======a2c Validation from:  2022-05-26 to  2022-06-27
a2c Sharpe Ratio:  -0.26014663912226876
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_140_7
======sac Validation from:  2022-05-26 to  2022-06-27
sac Sharpe Ratio:  -0.09183467292197314
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_140_7
-----------------------------------
| time/              |            |
|    fps             | 170        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -1.1395988 |
-----------------------------------
======ppo Validation from:  2022-05-26 to  2022-06-27
ppo Sharpe Ratio:  -0.22271236672187847
======Best Model Retraining from:  2010-01-04 to  2022-06-27
======Trading from:  2022-06-27 to  2022-07-26
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-06-27
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_160_7
-------------------------------------
| time/                 |           |
|    fps                | 153       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 1.19e-07  |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | 14.3      |
|    reward             | 1.6082815 |
|    std                | 1         |
|    value_loss         | 37.7      |
-------------------------------------
======a2c Validation from:  2022-06-27 to  2022-07-26
a2c Sharpe Ratio:  0.3328580326672359
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_160_7
======sac Validation from:  2022-06-27 to  2022-07-26
sac Sharpe Ratio:  0.46171859260682646
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_160_7
----------------------------------
| time/              |           |
|    fps             | 166       |
|    iterations      | 1         |
|    time_elapsed    | 12        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 1.0996473 |
----------------------------------
======ppo Validation from:  2022-06-27 to  2022-07-26
ppo Sharpe Ratio:  0.2586519091388897
======Best Model Retraining from:  2010-01-04 to  2022-07-26
======Trading from:  2022-07-26 to  2022-08-23
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-07-26
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_180_7
--------------------------------------
| time/                 |            |
|    fps                | 153        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.4      |
|    explained_variance | 0          |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | -474       |
|    reward             | 0.76817995 |
|    std                | 1          |
|    value_loss         | 180        |
--------------------------------------
======a2c Validation from:  2022-07-26 to  2022-08-23
a2c Sharpe Ratio:  -0.26217104991640383
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_180_7
======sac Validation from:  2022-07-26 to  2022-08-23
sac Sharpe Ratio:  -0.2559058029588138
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_180_7
-------------------------------------
| time/              |              |
|    fps             | 165          |
|    iterations      | 1            |
|    time_elapsed    | 12           |
|    total_timesteps | 2048         |
| train/             |              |
|    reward          | -0.068954915 |
-------------------------------------
======ppo Validation from:  2022-07-26 to  2022-08-23
ppo Sharpe Ratio:  -0.2911393739334291
======Best Model Retraining from:  2010-01-04 to  2022-08-23
======Trading from:  2022-08-23 to  2022-09-21
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-08-23
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_200_7
-------------------------------------
| time/                 |           |
|    fps                | 153       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.5     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -90.9     |
|    reward             | 2.1152883 |
|    std                | 1.01      |
|    value_loss         | 47.2      |
-------------------------------------
======a2c Validation from:  2022-08-23 to  2022-09-21
a2c Sharpe Ratio:  -0.37293292596203065
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_200_7
======sac Validation from:  2022-08-23 to  2022-09-21
sac Sharpe Ratio:  -0.4922653739819897
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_200_7
-----------------------------------
| time/              |            |
|    fps             | 165        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.20924889 |
-----------------------------------
======ppo Validation from:  2022-08-23 to  2022-09-21
ppo Sharpe Ratio:  -0.3609532389192027
======Best Model Retraining from:  2010-01-04 to  2022-09-21
======Trading from:  2022-09-21 to  2022-10-19
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-09-21
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_220_7
--------------------------------------
| time/                 |            |
|    fps                | 147        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.3      |
|    explained_variance | 0          |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | -209       |
|    reward             | 0.10164115 |
|    std                | 1          |
|    value_loss         | 47.3       |
--------------------------------------
======a2c Validation from:  2022-09-21 to  2022-10-19
a2c Sharpe Ratio:  0.2093176078995755
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_220_7
======sac Validation from:  2022-09-21 to  2022-10-19
sac Sharpe Ratio:  0.3147633456698607
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_220_7
-----------------------------------
| time/              |            |
|    fps             | 162        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.04104819 |
-----------------------------------
======ppo Validation from:  2022-09-21 to  2022-10-19
ppo Sharpe Ratio:  0.2618679219900995
======Best Model Retraining from:  2010-01-04 to  2022-10-19
======Trading from:  2022-10-19 to  2022-11-16
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-10-19
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_240_7
-------------------------------------
| time/                 |           |
|    fps                | 145       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.2     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -245      |
|    reward             | 1.3768109 |
|    std                | 0.995     |
|    value_loss         | 45        |
-------------------------------------
======a2c Validation from:  2022-10-19 to  2022-11-16
a2c Sharpe Ratio:  0.7555741924097998
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_240_7
======sac Validation from:  2022-10-19 to  2022-11-16
sac Sharpe Ratio:  0.6426211221766183
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_240_7
----------------------------------
| time/              |           |
|    fps             | 166       |
|    iterations      | 1         |
|    time_elapsed    | 12        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 2.5161564 |
----------------------------------
======ppo Validation from:  2022-10-19 to  2022-11-16
ppo Sharpe Ratio:  0.5068425130039071
======Best Model Retraining from:  2010-01-04 to  2022-11-16
======Trading from:  2022-11-16 to  2022-12-15
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-11-16
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_260_7
-------------------------------------
| time/                 |           |
|    fps                | 146       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -352      |
|    reward             | 3.1386695 |
|    std                | 1         |
|    value_loss         | 134       |
-------------------------------------
======a2c Validation from:  2022-11-16 to  2022-12-15
a2c Sharpe Ratio:  0.01686659361619277
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_260_7
======sac Validation from:  2022-11-16 to  2022-12-15
sac Sharpe Ratio:  0.15765846442700004
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_260_7
---------------------------------
| time/              |          |
|    fps             | 165      |
|    iterations      | 1        |
|    time_elapsed    | 12       |
|    total_timesteps | 2048     |
| train/             |          |
|    reward          | 0.633922 |
---------------------------------
======ppo Validation from:  2022-11-16 to  2022-12-15
ppo Sharpe Ratio:  -0.10177756562463378
======Best Model Retraining from:  2010-01-04 to  2022-12-15
======Trading from:  2022-12-15 to  2023-01-17
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-12-15
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_280_7
-------------------------------------
| time/                 |           |
|    fps                | 145       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -126      |
|    reward             | 0.7477155 |
|    std                | 1         |
|    value_loss         | 14.7      |
-------------------------------------
======a2c Validation from:  2022-12-15 to  2023-01-17
a2c Sharpe Ratio:  0.4912245736256434
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_280_7
======sac Validation from:  2022-12-15 to  2023-01-17
sac Sharpe Ratio:  0.627456190033443
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_280_7
---------------------------------
| time/              |          |
|    fps             | 164      |
|    iterations      | 1        |
|    time_elapsed    | 12       |
|    total_timesteps | 2048     |
| train/             |          |
|    reward          | 1.141664 |
---------------------------------
======ppo Validation from:  2022-12-15 to  2023-01-17
ppo Sharpe Ratio:  0.4981771840299969
======Best Model Retraining from:  2010-01-04 to  2023-01-17
======Trading from:  2023-01-17 to  2023-02-14
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-01-17
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_300_7
------------------------------------
| time/                 |          |
|    fps                | 148      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.4    |
|    explained_variance | 0        |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -83.5    |
|    reward             | 2.626683 |
|    std                | 1        |
|    value_loss         | 21.8     |
------------------------------------
======a2c Validation from:  2023-01-17 to  2023-02-14
a2c Sharpe Ratio:  0.36399871041373366
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_300_7
======sac Validation from:  2023-01-17 to  2023-02-14
sac Sharpe Ratio:  -0.09887854975106665
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_300_7
----------------------------------
| time/              |           |
|    fps             | 162       |
|    iterations      | 1         |
|    time_elapsed    | 12        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 0.6997812 |
----------------------------------
======ppo Validation from:  2023-01-17 to  2023-02-14
ppo Sharpe Ratio:  0.2660080810727043
======Best Model Retraining from:  2010-01-04 to  2023-02-14
======Trading from:  2023-02-14 to  2023-03-15
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-02-14
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_320_7
------------------------------------
| time/                 |          |
|    fps                | 148      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.4    |
|    explained_variance | 0.00637  |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -473     |
|    reward             | 3.086805 |
|    std                | 1.01     |
|    value_loss         | 212      |
------------------------------------
======a2c Validation from:  2023-02-14 to  2023-03-15
a2c Sharpe Ratio:  -0.3796393999510418
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_320_7
======sac Validation from:  2023-02-14 to  2023-03-15
sac Sharpe Ratio:  -0.619906377330429
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_320_7
-----------------------------------
| time/              |            |
|    fps             | 157        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -0.1296025 |
-----------------------------------
======ppo Validation from:  2023-02-14 to  2023-03-15
ppo Sharpe Ratio:  -0.3550101821831933
======Best Model Retraining from:  2010-01-04 to  2023-03-15
======Trading from:  2023-03-15 to  2023-04-13
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-03-15
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_340_7
-------------------------------------
| time/                 |           |
|    fps                | 143       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 0.0232    |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -234      |
|    reward             | 3.4686148 |
|    std                | 1         |
|    value_loss         | 57.7      |
-------------------------------------
======a2c Validation from:  2023-03-15 to  2023-04-13
a2c Sharpe Ratio:  0.45873894373480495
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_340_7
======sac Validation from:  2023-03-15 to  2023-04-13
sac Sharpe Ratio:  0.5806979351334597
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_340_7
----------------------------------
| time/              |           |
|    fps             | 154       |
|    iterations      | 1         |
|    time_elapsed    | 13        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 2.4719942 |
----------------------------------
======ppo Validation from:  2023-03-15 to  2023-04-13
ppo Sharpe Ratio:  0.4381650526977873
======Best Model Retraining from:  2010-01-04 to  2023-04-13
======Trading from:  2023-04-13 to  2023-05-11
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-04-13
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_360_7
-------------------------------------
| time/                 |           |
|    fps                | 140       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.2     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -365      |
|    reward             | 4.0066724 |
|    std                | 0.997     |
|    value_loss         | 165       |
-------------------------------------
======a2c Validation from:  2023-04-13 to  2023-05-11
a2c Sharpe Ratio:  -0.15901927878576932
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_360_7
======sac Validation from:  2023-04-13 to  2023-05-11
sac Sharpe Ratio:  0.019134122911645665
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_360_7
----------------------------------
| time/              |           |
|    fps             | 155       |
|    iterations      | 1         |
|    time_elapsed    | 13        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 0.8010855 |
----------------------------------
======ppo Validation from:  2023-04-13 to  2023-05-11
ppo Sharpe Ratio:  -0.060664593441836466
======Best Model Retraining from:  2010-01-04 to  2023-05-11
======Trading from:  2023-05-11 to  2023-06-09
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-05-11
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_380_7
------------------------------------
| time/                 |          |
|    fps                | 140      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.2    |
|    explained_variance | 0        |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | 39.1     |
|    reward             | 1.858794 |
|    std                | 0.996    |
|    value_loss         | 15.2     |
------------------------------------
======a2c Validation from:  2023-05-11 to  2023-06-09
a2c Sharpe Ratio:  0.5703810054201461
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_380_7
======sac Validation from:  2023-05-11 to  2023-06-09
sac Sharpe Ratio:  0.13697371852414045
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_380_7
----------------------------------
| time/              |           |
|    fps             | 156       |
|    iterations      | 1         |
|    time_elapsed    | 13        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 0.3671338 |
----------------------------------
======ppo Validation from:  2023-05-11 to  2023-06-09
ppo Sharpe Ratio:  0.6009048579495265
======Best Model Retraining from:  2010-01-04 to  2023-06-09
======Trading from:  2023-06-09 to  2023-07-11
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-06-09
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_400_7
------------------------------------
| time/                 |          |
|    fps                | 141      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.3    |
|    explained_variance | -0.0358  |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -285     |
|    reward             | 4.796846 |
|    std                | 1        |
|    value_loss         | 148      |
------------------------------------
======a2c Validation from:  2023-06-09 to  2023-07-11
a2c Sharpe Ratio:  0.5131678125436792
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_400_7
======sac Validation from:  2023-06-09 to  2023-07-11
sac Sharpe Ratio:  0.20508076242241602
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_400_7
-----------------------------------
| time/              |            |
|    fps             | 159        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -2.6267786 |
-----------------------------------
======ppo Validation from:  2023-06-09 to  2023-07-11
ppo Sharpe Ratio:  0.3232017709752568
======Best Model Retraining from:  2010-01-04 to  2023-07-11
======Trading from:  2023-07-11 to  2023-08-08
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-07-11
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_420_7
------------------------------------
| time/                 |          |
|    fps                | 144      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.3    |
|    explained_variance | 0.0143   |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -534     |
|    reward             | 1.585778 |
|    std                | 0.999    |
|    value_loss         | 236      |
------------------------------------
======a2c Validation from:  2023-07-11 to  2023-08-08
a2c Sharpe Ratio:  -0.16195739140870916
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_420_7
======sac Validation from:  2023-07-11 to  2023-08-08
sac Sharpe Ratio:  0.005009480435611331
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_420_7
------------------------------------
| time/              |             |
|    fps             | 157         |
|    iterations      | 1           |
|    time_elapsed    | 13          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | 0.040767707 |
------------------------------------
======ppo Validation from:  2023-07-11 to  2023-08-08
ppo Sharpe Ratio:  -0.11839774912620346
======Best Model Retraining from:  2010-01-04 to  2023-08-08
======Trading from:  2023-08-08 to  2023-09-06
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-08-08
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_440_7
-------------------------------------
| time/                 |           |
|    fps                | 141       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 1.19e-07  |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | 55.3      |
|    reward             | 1.1025249 |
|    std                | 1         |
|    value_loss         | 7         |
-------------------------------------
======a2c Validation from:  2023-08-08 to  2023-09-06
a2c Sharpe Ratio:  -0.11093483019727261
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_440_7
======sac Validation from:  2023-08-08 to  2023-09-06
sac Sharpe Ratio:  -0.14747129236026188
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_440_7
------------------------------------
| time/              |             |
|    fps             | 151         |
|    iterations      | 1           |
|    time_elapsed    | 13          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.26759928 |
------------------------------------
======ppo Validation from:  2023-08-08 to  2023-09-06
ppo Sharpe Ratio:  0.014180258412877065
======Best Model Retraining from:  2010-01-04 to  2023-09-06
======Trading from:  2023-09-06 to  2023-10-04
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-09-06
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_460_7
-------------------------------------
| time/                 |           |
|    fps                | 143       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.5     |
|    explained_variance | 1.19e-07  |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -488      |
|    reward             | 1.2504898 |
|    std                | 1.01      |
|    value_loss         | 172       |
-------------------------------------
======a2c Validation from:  2023-09-06 to  2023-10-04
a2c Sharpe Ratio:  -0.9617620972345442
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_460_7
======sac Validation from:  2023-09-06 to  2023-10-04
sac Sharpe Ratio:  -0.9920687802922873
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_460_7
-----------------------------------
| time/              |            |
|    fps             | 155        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.24773361 |
-----------------------------------
======ppo Validation from:  2023-09-06 to  2023-10-04
ppo Sharpe Ratio:  -1.3319017054272
======Best Model Retraining from:  2010-01-04 to  2023-10-04
======Trading from:  2023-10-04 to  2023-11-01
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-10-04
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_480_7
--------------------------------------
| time/                 |            |
|    fps                | 138        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.3      |
|    explained_variance | 0          |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | -40.6      |
|    reward             | 0.92286885 |
|    std                | 0.999      |
|    value_loss         | 5.15       |
--------------------------------------
======a2c Validation from:  2023-10-04 to  2023-11-01
a2c Sharpe Ratio:  -0.5450368167071131
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_480_7
======sac Validation from:  2023-10-04 to  2023-11-01
sac Sharpe Ratio:  -0.5169561975138348
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_480_7
------------------------------------
| time/              |             |
|    fps             | 154         |
|    iterations      | 1           |
|    time_elapsed    | 13          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.74272066 |
------------------------------------
======ppo Validation from:  2023-10-04 to  2023-11-01
ppo Sharpe Ratio:  -0.5322698826914314
======Best Model Retraining from:  2010-01-04 to  2023-11-01
======Trading from:  2023-11-01 to  2023-11-30
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-11-01
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_500_7
-------------------------------------
| time/                 |           |
|    fps                | 138       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | 204       |
|    reward             | 2.8629305 |
|    std                | 1         |
|    value_loss         | 70.7      |
-------------------------------------
======a2c Validation from:  2023-11-01 to  2023-11-30
a2c Sharpe Ratio:  -0.037628394170374065
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_500_7
======sac Validation from:  2023-11-01 to  2023-11-30
sac Sharpe Ratio:  0.7063754540866066
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_500_7
-----------------------------------
| time/              |            |
|    fps             | 152        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.13059996 |
-----------------------------------
======ppo Validation from:  2023-11-01 to  2023-11-30
ppo Sharpe Ratio:  0.7216389643811085
======Best Model Retraining from:  2010-01-04 to  2023-11-30
======Trading from:  2023-11-30 to  2023-12-29
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-11-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_520_7
-------------------------------------
| time/                 |           |
|    fps                | 139       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | 14.3      |
|    reward             | 1.9093802 |
|    std                | 0.999     |
|    value_loss         | 13.2      |
-------------------------------------
======a2c Validation from:  2023-11-30 to  2023-12-29
a2c Sharpe Ratio:  0.7654289259827723
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_520_7
======sac Validation from:  2023-11-30 to  2023-12-29
sac Sharpe Ratio:  0.6974681233349738
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_520_7
------------------------------------
| time/              |             |
|    fps             | 155         |
|    iterations      | 1           |
|    time_elapsed    | 13          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.37526974 |
------------------------------------
======ppo Validation from:  2023-11-30 to  2023-12-29
ppo Sharpe Ratio:  0.8509388575995951
======Best Model Retraining from:  2010-01-04 to  2023-12-29
======Trading from:  2023-12-29 to  2024-01-30
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-12-29
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_540_7
------------------------------------
| time/                 |          |
|    fps                | 135      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.5    |
|    explained_variance | 0        |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -215     |
|    reward             | 3.003827 |
|    std                | 1.01     |
|    value_loss         | 48.7     |
------------------------------------
======a2c Validation from:  2023-12-29 to  2024-01-30
a2c Sharpe Ratio:  0.040377688057555844
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_540_7
======sac Validation from:  2023-12-29 to  2024-01-30
sac Sharpe Ratio:  0.40917601883220134
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_540_7
----------------------------------
| time/              |           |
|    fps             | 155       |
|    iterations      | 1         |
|    time_elapsed    | 13        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 0.4627169 |
----------------------------------
======ppo Validation from:  2023-12-29 to  2024-01-30
ppo Sharpe Ratio:  -0.18946854194936086
======Best Model Retraining from:  2010-01-04 to  2024-01-30
======Trading from:  2024-01-30 to  2024-02-28
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-01-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_560_7
------------------------------------
| time/                 |          |
|    fps                | 143      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.5    |
|    explained_variance | 0        |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -229     |
|    reward             | 2.918898 |
|    std                | 1.01     |
|    value_loss         | 57       |
------------------------------------
======a2c Validation from:  2024-01-30 to  2024-02-28
a2c Sharpe Ratio:  0.6401600913766964
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_560_7
======sac Validation from:  2024-01-30 to  2024-02-28
sac Sharpe Ratio:  0.34898654112195365
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_560_7
-----------------------------------
| time/              |            |
|    fps             | 153        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -2.4348567 |
-----------------------------------
======ppo Validation from:  2024-01-30 to  2024-02-28
ppo Sharpe Ratio:  0.5888472559134432
======Best Model Retraining from:  2010-01-04 to  2024-02-28
======Trading from:  2024-02-28 to  2024-03-27
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-02-28
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_580_7
-------------------------------------
| time/                 |           |
|    fps                | 135       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -142      |
|    reward             | 0.3309329 |
|    std                | 0.999     |
|    value_loss         | 24.9      |
-------------------------------------
======a2c Validation from:  2024-02-28 to  2024-03-27
a2c Sharpe Ratio:  0.4144006011626133
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_580_7
======sac Validation from:  2024-02-28 to  2024-03-27
sac Sharpe Ratio:  0.22567327218581357
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_580_7
-----------------------------------
| time/              |            |
|    fps             | 153        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -1.0620995 |
-----------------------------------
======ppo Validation from:  2024-02-28 to  2024-03-27
ppo Sharpe Ratio:  0.2065856355793313
======Best Model Retraining from:  2010-01-04 to  2024-03-27
======Trading from:  2024-03-27 to  2024-04-25
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-03-27
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_600_7
-------------------------------------
| time/                 |           |
|    fps                | 140       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 0.0941    |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -329      |
|    reward             | 3.5824735 |
|    std                | 0.999     |
|    value_loss         | 127       |
-------------------------------------
======a2c Validation from:  2024-03-27 to  2024-04-25
a2c Sharpe Ratio:  -0.2878797139359455
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_600_7
======sac Validation from:  2024-03-27 to  2024-04-25
sac Sharpe Ratio:  -0.28118262424269425
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_600_7
-----------------------------------
| time/              |            |
|    fps             | 151        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.55891114 |
-----------------------------------
======ppo Validation from:  2024-03-27 to  2024-04-25
ppo Sharpe Ratio:  -0.2410078034889812
======Best Model Retraining from:  2010-01-04 to  2024-04-25
======Trading from:  2024-04-25 to  2024-05-23
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-04-25
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_620_7
-------------------------------------
| time/                 |           |
|    fps                | 135       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.2     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -395      |
|    reward             | 3.5012217 |
|    std                | 0.996     |
|    value_loss         | 131       |
-------------------------------------
======a2c Validation from:  2024-04-25 to  2024-05-23
a2c Sharpe Ratio:  0.7247563826923544
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_620_7
======sac Validation from:  2024-04-25 to  2024-05-23
sac Sharpe Ratio:  0.24071162817676037
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_620_7
-----------------------------------
| time/              |            |
|    fps             | 143        |
|    iterations      | 1          |
|    time_elapsed    | 14         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.49886173 |
-----------------------------------
======ppo Validation from:  2024-04-25 to  2024-05-23
ppo Sharpe Ratio:  0.49763862639176365
======Best Model Retraining from:  2010-01-04 to  2024-05-23
======Trading from:  2024-05-23 to  2024-06-24
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-05-23
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_640_7
-------------------------------------
| time/                 |           |
|    fps                | 132       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | -1.19e-07 |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -36.6     |
|    reward             | 0.2621175 |
|    std                | 1         |
|    value_loss         | 2.04      |
-------------------------------------
======a2c Validation from:  2024-05-23 to  2024-06-24
a2c Sharpe Ratio:  0.07214798831738484
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_640_7
======sac Validation from:  2024-05-23 to  2024-06-24
sac Sharpe Ratio:  0.5573855349708101
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_640_7
----------------------------------
| time/              |           |
|    fps             | 151       |
|    iterations      | 1         |
|    time_elapsed    | 13        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 0.7304851 |
----------------------------------
======ppo Validation from:  2024-05-23 to  2024-06-24
ppo Sharpe Ratio:  0.15259621904021836
======Best Model Retraining from:  2010-01-04 to  2024-06-24
======Trading from:  2024-06-24 to  2024-07-23
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-06-24
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_660_7
------------------------------------
| time/                 |          |
|    fps                | 140      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.4    |
|    explained_variance | 0        |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -283     |
|    reward             | 4.014628 |
|    std                | 1        |
|    value_loss         | 69.1     |
------------------------------------
======a2c Validation from:  2024-06-24 to  2024-07-23
a2c Sharpe Ratio:  0.4225245179659611
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_660_7
======sac Validation from:  2024-06-24 to  2024-07-23
sac Sharpe Ratio:  0.21769919531765136
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_660_7
----------------------------------
| time/              |           |
|    fps             | 149       |
|    iterations      | 1         |
|    time_elapsed    | 13        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | -1.107499 |
----------------------------------
Training Ensemble Models:  33%|███▎      | 1/3 [14:09<28:19, 849.55s/it]
======ppo Validation from:  2024-06-24 to  2024-07-23
ppo Sharpe Ratio:  0.2760073027690753
======Best Model Retraining from:  2010-01-04 to  2024-07-23
======Trading from:  2024-07-23 to  2024-08-20
Ensemble Strategy took:  14.158937911192575  minutes
A2C training completed!

Running PPO...
============Start Ensemble Strategy============
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-01-03
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_40_10
------------------------------------
| time/                 |          |
|    fps                | 154      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.4    |
|    explained_variance | 0        |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | 218      |
|    reward             | 2.499198 |
|    std                | 1.01     |
|    value_loss         | 99.3     |
------------------------------------
======a2c Validation from:  2022-01-03 to  2022-02-01
a2c Sharpe Ratio:  0.06690532324365144
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_40_9
======sac Validation from:  2022-01-03 to  2022-02-01
sac Sharpe Ratio:  -0.02044940500387012
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_40_9
-----------------------------------
| time/              |            |
|    fps             | 173        |
|    iterations      | 1          |
|    time_elapsed    | 11         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -1.3610878 |
-----------------------------------
======ppo Validation from:  2022-01-03 to  2022-02-01
ppo Sharpe Ratio:  -0.1564569302415366
======Best Model Retraining from:  2010-01-04 to  2022-02-01
======Trading from:  2022-02-01 to  2022-03-02
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-02-01
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_60_8
-------------------------------------
| time/                 |           |
|    fps                | 152       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -476      |
|    reward             | 3.5878506 |
|    std                | 1         |
|    value_loss         | 154       |
-------------------------------------
======a2c Validation from:  2022-02-01 to  2022-03-02
a2c Sharpe Ratio:  -0.5806404041174138
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_60_8
======sac Validation from:  2022-02-01 to  2022-03-02
sac Sharpe Ratio:  -0.6539967060245322
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_60_8
-----------------------------------
| time/              |            |
|    fps             | 174        |
|    iterations      | 1          |
|    time_elapsed    | 11         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.28662267 |
-----------------------------------
======ppo Validation from:  2022-02-01 to  2022-03-02
ppo Sharpe Ratio:  -0.6939764939946061
======Best Model Retraining from:  2010-01-04 to  2022-03-02
======Trading from:  2022-03-02 to  2022-03-30
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-03-02
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_80_8
--------------------------------------
| time/                 |            |
|    fps                | 152        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.4      |
|    explained_variance | 0          |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | 15.6       |
|    reward             | 0.94884616 |
|    std                | 1          |
|    value_loss         | 6.48       |
--------------------------------------
======a2c Validation from:  2022-03-02 to  2022-03-30
a2c Sharpe Ratio:  0.7558120204404786
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_80_8
======sac Validation from:  2022-03-02 to  2022-03-30
sac Sharpe Ratio:  0.8073210320889309
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_80_8
------------------------------------
| time/              |             |
|    fps             | 171         |
|    iterations      | 1           |
|    time_elapsed    | 11          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | 0.026066026 |
------------------------------------
======ppo Validation from:  2022-03-02 to  2022-03-30
ppo Sharpe Ratio:  0.6819377885777826
======Best Model Retraining from:  2010-01-04 to  2022-03-30
======Trading from:  2022-03-30 to  2022-04-28
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-03-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_100_8
-------------------------------------
| time/                 |           |
|    fps                | 151       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.5     |
|    explained_variance | 5.96e-08  |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -55.8     |
|    reward             | 1.8377849 |
|    std                | 1.01      |
|    value_loss         | 23.6      |
-------------------------------------
======a2c Validation from:  2022-03-30 to  2022-04-28
a2c Sharpe Ratio:  -0.5390547266209992
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_100_8
======sac Validation from:  2022-03-30 to  2022-04-28
sac Sharpe Ratio:  -0.5287018162055941
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_100_8
----------------------------------
| time/              |           |
|    fps             | 171       |
|    iterations      | 1         |
|    time_elapsed    | 11        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 0.8925058 |
----------------------------------
======ppo Validation from:  2022-03-30 to  2022-04-28
ppo Sharpe Ratio:  -0.4106312663120139
======Best Model Retraining from:  2010-01-04 to  2022-04-28
======Trading from:  2022-04-28 to  2022-05-26
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-04-28
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_120_8
-------------------------------------
| time/                 |           |
|    fps                | 150       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.2     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | 12        |
|    reward             | 2.0747359 |
|    std                | 0.997     |
|    value_loss         | 12        |
-------------------------------------
======a2c Validation from:  2022-04-28 to  2022-05-26
a2c Sharpe Ratio:  0.0748593656946137
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_120_8
======sac Validation from:  2022-04-28 to  2022-05-26
sac Sharpe Ratio:  0.13502932860506137
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_120_8
-----------------------------------
| time/              |            |
|    fps             | 172        |
|    iterations      | 1          |
|    time_elapsed    | 11         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.11080452 |
-----------------------------------
======ppo Validation from:  2022-04-28 to  2022-05-26
ppo Sharpe Ratio:  0.08199334813150708
======Best Model Retraining from:  2010-01-04 to  2022-05-26
======Trading from:  2022-05-26 to  2022-06-27
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-05-26
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_140_8
-------------------------------------
| time/                 |           |
|    fps                | 148       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.5     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | 38.2      |
|    reward             | 2.2149398 |
|    std                | 1.01      |
|    value_loss         | 22.3      |
-------------------------------------
======a2c Validation from:  2022-05-26 to  2022-06-27
a2c Sharpe Ratio:  -0.1319117116252834
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_140_8
======sac Validation from:  2022-05-26 to  2022-06-27
sac Sharpe Ratio:  -0.17771526151020414
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_140_8
-----------------------------------
| time/              |            |
|    fps             | 168        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -1.0957401 |
-----------------------------------
======ppo Validation from:  2022-05-26 to  2022-06-27
ppo Sharpe Ratio:  -0.3229520764078126
======Best Model Retraining from:  2010-01-04 to  2022-06-27
======Trading from:  2022-06-27 to  2022-07-26
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-06-27
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_160_8
-------------------------------------
| time/                 |           |
|    fps                | 148       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.2     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -181      |
|    reward             | 1.0221664 |
|    std                | 0.996     |
|    value_loss         | 30.6      |
-------------------------------------
======a2c Validation from:  2022-06-27 to  2022-07-26
a2c Sharpe Ratio:  0.21632190871111107
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_160_8
======sac Validation from:  2022-06-27 to  2022-07-26
sac Sharpe Ratio:  0.4564304768094086
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_160_8
-----------------------------------
| time/              |            |
|    fps             | 169        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -0.5747138 |
-----------------------------------
======ppo Validation from:  2022-06-27 to  2022-07-26
ppo Sharpe Ratio:  0.37823412198235473
======Best Model Retraining from:  2010-01-04 to  2022-07-26
======Trading from:  2022-07-26 to  2022-08-23
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-07-26
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_180_8
-------------------------------------
| time/                 |           |
|    fps                | 151       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | 14.9      |
|    reward             | 2.6874685 |
|    std                | 1.01      |
|    value_loss         | 54.5      |
-------------------------------------
======a2c Validation from:  2022-07-26 to  2022-08-23
a2c Sharpe Ratio:  -0.27007099378574456
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_180_8
======sac Validation from:  2022-07-26 to  2022-08-23
sac Sharpe Ratio:  -0.2960875500612118
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_180_8
------------------------------------
| time/              |             |
|    fps             | 168         |
|    iterations      | 1           |
|    time_elapsed    | 12          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.04775619 |
------------------------------------
======ppo Validation from:  2022-07-26 to  2022-08-23
ppo Sharpe Ratio:  -0.35853202647625076
======Best Model Retraining from:  2010-01-04 to  2022-08-23
======Trading from:  2022-08-23 to  2022-09-21
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-08-23
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_200_8
-------------------------------------
| time/                 |           |
|    fps                | 149       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0.0927    |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -320      |
|    reward             | 1.7469965 |
|    std                | 1         |
|    value_loss         | 93.8      |
-------------------------------------
======a2c Validation from:  2022-08-23 to  2022-09-21
a2c Sharpe Ratio:  -0.4083804487132881
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_200_8
======sac Validation from:  2022-08-23 to  2022-09-21
sac Sharpe Ratio:  -0.42001513724612344
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_200_8
----------------------------------
| time/              |           |
|    fps             | 164       |
|    iterations      | 1         |
|    time_elapsed    | 12        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | -1.485466 |
----------------------------------
======ppo Validation from:  2022-08-23 to  2022-09-21
ppo Sharpe Ratio:  -0.4186683525678308
======Best Model Retraining from:  2010-01-04 to  2022-09-21
======Trading from:  2022-09-21 to  2022-10-19
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-09-21
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_220_8
-------------------------------------
| time/                 |           |
|    fps                | 152       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | 185       |
|    reward             | 2.7610364 |
|    std                | 1         |
|    value_loss         | 88.8      |
-------------------------------------
======a2c Validation from:  2022-09-21 to  2022-10-19
a2c Sharpe Ratio:  0.21314377549284239
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_220_8
======sac Validation from:  2022-09-21 to  2022-10-19
sac Sharpe Ratio:  0.12217074693410951
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_220_8
-----------------------------------
| time/              |            |
|    fps             | 166        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -1.3455435 |
-----------------------------------
======ppo Validation from:  2022-09-21 to  2022-10-19
ppo Sharpe Ratio:  -0.035511529474377884
======Best Model Retraining from:  2010-01-04 to  2022-10-19
======Trading from:  2022-10-19 to  2022-11-16
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-10-19
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_240_8
------------------------------------
| time/                 |          |
|    fps                | 153      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.5    |
|    explained_variance | 0        |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -313     |
|    reward             | 1.326798 |
|    std                | 1.01     |
|    value_loss         | 80.6     |
------------------------------------
======a2c Validation from:  2022-10-19 to  2022-11-16
a2c Sharpe Ratio:  0.458996158225884
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_240_8
======sac Validation from:  2022-10-19 to  2022-11-16
sac Sharpe Ratio:  0.448328425379857
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_240_8
-----------------------------------
| time/              |            |
|    fps             | 163        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.05243024 |
-----------------------------------
======ppo Validation from:  2022-10-19 to  2022-11-16
ppo Sharpe Ratio:  0.4240075164706596
======Best Model Retraining from:  2010-01-04 to  2022-11-16
======Trading from:  2022-11-16 to  2022-12-15
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-11-16
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_260_8
-------------------------------------
| time/                 |           |
|    fps                | 142       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -0.0225   |
|    reward             | 2.9157188 |
|    std                | 1         |
|    value_loss         | 33.7      |
-------------------------------------
======a2c Validation from:  2022-11-16 to  2022-12-15
a2c Sharpe Ratio:  0.24996519627740882
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_260_8
======sac Validation from:  2022-11-16 to  2022-12-15
sac Sharpe Ratio:  0.29593910351021124
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_260_8
------------------------------------
| time/              |             |
|    fps             | 164         |
|    iterations      | 1           |
|    time_elapsed    | 12          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.84768456 |
------------------------------------
======ppo Validation from:  2022-11-16 to  2022-12-15
ppo Sharpe Ratio:  0.1915305857781421
======Best Model Retraining from:  2010-01-04 to  2022-12-15
======Trading from:  2022-12-15 to  2023-01-17
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-12-15
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_280_8
------------------------------------
| time/                 |          |
|    fps                | 145      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.3    |
|    explained_variance | 1.19e-07 |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -276     |
|    reward             | 1.357563 |
|    std                | 0.999    |
|    value_loss         | 49.1     |
------------------------------------
======a2c Validation from:  2022-12-15 to  2023-01-17
a2c Sharpe Ratio:  0.5480446884621586
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_280_8
======sac Validation from:  2022-12-15 to  2023-01-17
sac Sharpe Ratio:  0.7104225549027511
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_280_8
-----------------------------------
| time/              |            |
|    fps             | 164        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.21439715 |
-----------------------------------
======ppo Validation from:  2022-12-15 to  2023-01-17
ppo Sharpe Ratio:  0.4031250002426819
======Best Model Retraining from:  2010-01-04 to  2023-01-17
======Trading from:  2023-01-17 to  2023-02-14
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-01-17
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_300_8
-------------------------------------
| time/                 |           |
|    fps                | 145       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | -1.19e-07 |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -188      |
|    reward             | 1.8085659 |
|    std                | 0.999     |
|    value_loss         | 30.7      |
-------------------------------------
======a2c Validation from:  2023-01-17 to  2023-02-14
a2c Sharpe Ratio:  0.3006302363881299
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_300_8
======sac Validation from:  2023-01-17 to  2023-02-14
sac Sharpe Ratio:  0.2974724197243113
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_300_8
-----------------------------------
| time/              |            |
|    fps             | 164        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.44758737 |
-----------------------------------
======ppo Validation from:  2023-01-17 to  2023-02-14
ppo Sharpe Ratio:  0.25260094527581445
======Best Model Retraining from:  2010-01-04 to  2023-02-14
======Trading from:  2023-02-14 to  2023-03-15
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-02-14
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_320_8
-------------------------------------
| time/                 |           |
|    fps                | 147       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.2     |
|    explained_variance | 5.96e-08  |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | 75.7      |
|    reward             | 2.9870167 |
|    std                | 0.998     |
|    value_loss         | 27.9      |
-------------------------------------
======a2c Validation from:  2023-02-14 to  2023-03-15
a2c Sharpe Ratio:  -0.5380204850689558
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_320_8
======sac Validation from:  2023-02-14 to  2023-03-15
sac Sharpe Ratio:  -0.47594873253242714
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_320_8
-----------------------------------
| time/              |            |
|    fps             | 163        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -1.1139855 |
-----------------------------------
======ppo Validation from:  2023-02-14 to  2023-03-15
ppo Sharpe Ratio:  -0.43505414504601414
======Best Model Retraining from:  2010-01-04 to  2023-03-15
======Trading from:  2023-03-15 to  2023-04-13
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-03-15
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_340_8
-------------------------------------
| time/                 |           |
|    fps                | 145       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.2     |
|    explained_variance | -2.38e-07 |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -220      |
|    reward             | 1.2184871 |
|    std                | 0.996     |
|    value_loss         | 38.7      |
-------------------------------------
======a2c Validation from:  2023-03-15 to  2023-04-13
a2c Sharpe Ratio:  0.38948244311412444
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_340_8
======sac Validation from:  2023-03-15 to  2023-04-13
sac Sharpe Ratio:  0.5372258157102852
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_340_8
-----------------------------------
| time/              |            |
|    fps             | 161        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -0.3359371 |
-----------------------------------
======ppo Validation from:  2023-03-15 to  2023-04-13
ppo Sharpe Ratio:  0.2321146190406004
======Best Model Retraining from:  2010-01-04 to  2023-04-13
======Trading from:  2023-04-13 to  2023-05-11
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-04-13
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_360_8
--------------------------------------
| time/                 |            |
|    fps                | 141        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.4      |
|    explained_variance | -0.0573    |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | -451       |
|    reward             | 0.14034371 |
|    std                | 1          |
|    value_loss         | 137        |
--------------------------------------
======a2c Validation from:  2023-04-13 to  2023-05-11
a2c Sharpe Ratio:  -0.31856810541103797
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_360_8
======sac Validation from:  2023-04-13 to  2023-05-11
sac Sharpe Ratio:  -0.36393490359359065
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_360_8
-----------------------------------
| time/              |            |
|    fps             | 159        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -0.5024036 |
-----------------------------------
======ppo Validation from:  2023-04-13 to  2023-05-11
ppo Sharpe Ratio:  -0.32456928666090523
======Best Model Retraining from:  2010-01-04 to  2023-05-11
======Trading from:  2023-05-11 to  2023-06-09
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-05-11
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_380_8
--------------------------------------
| time/                 |            |
|    fps                | 146        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.5      |
|    explained_variance | -2.38e-07  |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | -203       |
|    reward             | 0.87054217 |
|    std                | 1.01       |
|    value_loss         | 31.5       |
--------------------------------------
======a2c Validation from:  2023-05-11 to  2023-06-09
a2c Sharpe Ratio:  0.5505536422433295
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_380_8
======sac Validation from:  2023-05-11 to  2023-06-09
sac Sharpe Ratio:  0.5473927530925916
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_380_8
-----------------------------------
| time/              |            |
|    fps             | 159        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.43062064 |
-----------------------------------
======ppo Validation from:  2023-05-11 to  2023-06-09
ppo Sharpe Ratio:  0.3640754139535865
======Best Model Retraining from:  2010-01-04 to  2023-06-09
======Trading from:  2023-06-09 to  2023-07-11
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-06-09
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_400_8
------------------------------------
| time/                 |          |
|    fps                | 147      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.3    |
|    explained_variance | 0        |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -170     |
|    reward             | 3.038293 |
|    std                | 0.998    |
|    value_loss         | 43       |
------------------------------------
======a2c Validation from:  2023-06-09 to  2023-07-11
a2c Sharpe Ratio:  0.38707153544441875
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_400_8
======sac Validation from:  2023-06-09 to  2023-07-11
sac Sharpe Ratio:  0.4677893002848949
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_400_8
------------------------------------
| time/              |             |
|    fps             | 159         |
|    iterations      | 1           |
|    time_elapsed    | 12          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.15942223 |
------------------------------------
======ppo Validation from:  2023-06-09 to  2023-07-11
ppo Sharpe Ratio:  0.43539238798189384
======Best Model Retraining from:  2010-01-04 to  2023-07-11
======Trading from:  2023-07-11 to  2023-08-08
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-07-11
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_420_8
--------------------------------------
| time/                 |            |
|    fps                | 141        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.4      |
|    explained_variance | -1.19e-07  |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | -254       |
|    reward             | 0.92542195 |
|    std                | 1          |
|    value_loss         | 68.7       |
--------------------------------------
======a2c Validation from:  2023-07-11 to  2023-08-08
a2c Sharpe Ratio:  -0.1954886136871692
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_420_8
======sac Validation from:  2023-07-11 to  2023-08-08
sac Sharpe Ratio:  0.21291450563883288
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_420_8
-----------------------------------
| time/              |            |
|    fps             | 151        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.34264624 |
-----------------------------------
======ppo Validation from:  2023-07-11 to  2023-08-08
ppo Sharpe Ratio:  0.08082078741547298
======Best Model Retraining from:  2010-01-04 to  2023-08-08
======Trading from:  2023-08-08 to  2023-09-06
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-08-08
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_440_8
-------------------------------------
| time/                 |           |
|    fps                | 141       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -261      |
|    reward             | 3.0962822 |
|    std                | 1         |
|    value_loss         | 71.9      |
-------------------------------------
======a2c Validation from:  2023-08-08 to  2023-09-06
a2c Sharpe Ratio:  0.1059615765035796
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_440_8
======sac Validation from:  2023-08-08 to  2023-09-06
sac Sharpe Ratio:  0.1655665963609186
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_440_8
-----------------------------------
| time/              |            |
|    fps             | 157        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -1.3147409 |
-----------------------------------
======ppo Validation from:  2023-08-08 to  2023-09-06
ppo Sharpe Ratio:  -0.16348419311895815
======Best Model Retraining from:  2010-01-04 to  2023-09-06
======Trading from:  2023-09-06 to  2023-10-04
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-09-06
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_460_8
--------------------------------------
| time/                 |            |
|    fps                | 140        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.5      |
|    explained_variance | 5.96e-08   |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | -398       |
|    reward             | 0.11880505 |
|    std                | 1.01       |
|    value_loss         | 132        |
--------------------------------------
======a2c Validation from:  2023-09-06 to  2023-10-04
a2c Sharpe Ratio:  -1.0600788213324894
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_460_8
======sac Validation from:  2023-09-06 to  2023-10-04
sac Sharpe Ratio:  -0.9378064577139144
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_460_8
----------------------------------
| time/              |           |
|    fps             | 156       |
|    iterations      | 1         |
|    time_elapsed    | 13        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | -1.138806 |
----------------------------------
======ppo Validation from:  2023-09-06 to  2023-10-04
ppo Sharpe Ratio:  -0.8696865889314375
======Best Model Retraining from:  2010-01-04 to  2023-10-04
======Trading from:  2023-10-04 to  2023-11-01
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-10-04
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_480_8
-------------------------------------
| time/                 |           |
|    fps                | 140       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.5     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | 149       |
|    reward             | 1.8812566 |
|    std                | 1.01      |
|    value_loss         | 40.7      |
-------------------------------------
======a2c Validation from:  2023-10-04 to  2023-11-01
a2c Sharpe Ratio:  -0.5270538394027827
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_480_8
======sac Validation from:  2023-10-04 to  2023-11-01
sac Sharpe Ratio:  -0.8162350758505548
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_480_8
-----------------------------------
| time/              |            |
|    fps             | 157        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -0.1110432 |
-----------------------------------
======ppo Validation from:  2023-10-04 to  2023-11-01
ppo Sharpe Ratio:  -0.5196765819237817
======Best Model Retraining from:  2010-01-04 to  2023-11-01
======Trading from:  2023-11-01 to  2023-11-30
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-11-01
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_500_8
--------------------------------------
| time/                 |            |
|    fps                | 142        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.5      |
|    explained_variance | 0          |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | -390       |
|    reward             | 0.77264285 |
|    std                | 1.01       |
|    value_loss         | 138        |
--------------------------------------
======a2c Validation from:  2023-11-01 to  2023-11-30
a2c Sharpe Ratio:  1.1005108538894648
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_500_8
======sac Validation from:  2023-11-01 to  2023-11-30
sac Sharpe Ratio:  0.8553970570716987
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_500_8
-----------------------------------
| time/              |            |
|    fps             | 154        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -1.2198234 |
-----------------------------------
======ppo Validation from:  2023-11-01 to  2023-11-30
ppo Sharpe Ratio:  0.8626956567404716
======Best Model Retraining from:  2010-01-04 to  2023-11-30
======Trading from:  2023-11-30 to  2023-12-29
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-11-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_520_8
-------------------------------------
| time/                 |           |
|    fps                | 136       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -58.9     |
|    reward             | 2.5138872 |
|    std                | 1         |
|    value_loss         | 28.1      |
-------------------------------------
======a2c Validation from:  2023-11-30 to  2023-12-29
a2c Sharpe Ratio:  0.6339900705252979
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_520_8
======sac Validation from:  2023-11-30 to  2023-12-29
sac Sharpe Ratio:  0.7397524567426513
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_520_8
-----------------------------------
| time/              |            |
|    fps             | 154        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -1.3633145 |
-----------------------------------
======ppo Validation from:  2023-11-30 to  2023-12-29
ppo Sharpe Ratio:  1.1088719454062237
======Best Model Retraining from:  2010-01-04 to  2023-12-29
======Trading from:  2023-12-29 to  2024-01-30
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-12-29
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_540_8
-------------------------------------
| time/                 |           |
|    fps                | 137       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -112      |
|    reward             | 0.6126412 |
|    std                | 0.999     |
|    value_loss         | 11.8      |
-------------------------------------
======a2c Validation from:  2023-12-29 to  2024-01-30
a2c Sharpe Ratio:  0.3937211468972895
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_540_8
======sac Validation from:  2023-12-29 to  2024-01-30
sac Sharpe Ratio:  0.376272526955563
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_540_8
------------------------------------
| time/              |             |
|    fps             | 152         |
|    iterations      | 1           |
|    time_elapsed    | 13          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.38131493 |
------------------------------------
======ppo Validation from:  2023-12-29 to  2024-01-30
ppo Sharpe Ratio:  0.42070485385201334
======Best Model Retraining from:  2010-01-04 to  2024-01-30
======Trading from:  2024-01-30 to  2024-02-28
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-01-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_560_8
------------------------------------
| time/                 |          |
|    fps                | 133      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.5    |
|    explained_variance | 1.79e-07 |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -118     |
|    reward             | 2.316006 |
|    std                | 1.01     |
|    value_loss         | 23.1     |
------------------------------------
======a2c Validation from:  2024-01-30 to  2024-02-28
a2c Sharpe Ratio:  0.5694356379259715
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_560_8
======sac Validation from:  2024-01-30 to  2024-02-28
sac Sharpe Ratio:  0.2875168154858131
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_560_8
------------------------------------
| time/              |             |
|    fps             | 155         |
|    iterations      | 1           |
|    time_elapsed    | 13          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.16032481 |
------------------------------------
======ppo Validation from:  2024-01-30 to  2024-02-28
ppo Sharpe Ratio:  0.22585768091604064
======Best Model Retraining from:  2010-01-04 to  2024-02-28
======Trading from:  2024-02-28 to  2024-03-27
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-02-28
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_580_8
-------------------------------------
| time/                 |           |
|    fps                | 139       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -2.27     |
|    reward             | 1.2279879 |
|    std                | 1         |
|    value_loss         | 4.74      |
-------------------------------------
======a2c Validation from:  2024-02-28 to  2024-03-27
a2c Sharpe Ratio:  -0.012979695688310164
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_580_8
======sac Validation from:  2024-02-28 to  2024-03-27
sac Sharpe Ratio:  0.39649648454778824
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_580_8
-------------------------------------
| time/              |              |
|    fps             | 150          |
|    iterations      | 1            |
|    time_elapsed    | 13           |
|    total_timesteps | 2048         |
| train/             |              |
|    reward          | -0.046416663 |
-------------------------------------
======ppo Validation from:  2024-02-28 to  2024-03-27
ppo Sharpe Ratio:  0.4834654165668012
======Best Model Retraining from:  2010-01-04 to  2024-03-27
======Trading from:  2024-03-27 to  2024-04-25
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-03-27
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_600_8
-------------------------------------
| time/                 |           |
|    fps                | 141       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 1.19e-07  |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -330      |
|    reward             | 1.7837248 |
|    std                | 1         |
|    value_loss         | 95.5      |
-------------------------------------
======a2c Validation from:  2024-03-27 to  2024-04-25
a2c Sharpe Ratio:  -0.11853485739919521
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_600_8
======sac Validation from:  2024-03-27 to  2024-04-25
sac Sharpe Ratio:  -0.2266142659329783
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_600_8
------------------------------------
| time/              |             |
|    fps             | 151         |
|    iterations      | 1           |
|    time_elapsed    | 13          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.84688705 |
------------------------------------
======ppo Validation from:  2024-03-27 to  2024-04-25
ppo Sharpe Ratio:  -0.3660663509655921
======Best Model Retraining from:  2010-01-04 to  2024-04-25
======Trading from:  2024-04-25 to  2024-05-23
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-04-25
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_620_8
-------------------------------------
| time/                 |           |
|    fps                | 137       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.2     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -251      |
|    reward             | 1.1641676 |
|    std                | 0.995     |
|    value_loss         | 48.8      |
-------------------------------------
======a2c Validation from:  2024-04-25 to  2024-05-23
a2c Sharpe Ratio:  1.1924217777890302
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_620_8
======sac Validation from:  2024-04-25 to  2024-05-23
sac Sharpe Ratio:  1.2949290768173918
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_620_8
----------------------------------
| time/              |           |
|    fps             | 153       |
|    iterations      | 1         |
|    time_elapsed    | 13        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 1.4214128 |
----------------------------------
======ppo Validation from:  2024-04-25 to  2024-05-23
ppo Sharpe Ratio:  0.4952585112161672
======Best Model Retraining from:  2010-01-04 to  2024-05-23
======Trading from:  2024-05-23 to  2024-06-24
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-05-23
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_640_8
--------------------------------------
| time/                 |            |
|    fps                | 133        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.5      |
|    explained_variance | 0          |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | -102       |
|    reward             | 0.68221694 |
|    std                | 1.01       |
|    value_loss         | 15.1       |
--------------------------------------
======a2c Validation from:  2024-05-23 to  2024-06-24
a2c Sharpe Ratio:  -0.19865719572967722
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_640_8
======sac Validation from:  2024-05-23 to  2024-06-24
sac Sharpe Ratio:  -0.015517910797790274
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_640_8
----------------------------------
| time/              |           |
|    fps             | 146       |
|    iterations      | 1         |
|    time_elapsed    | 13        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 2.1389923 |
----------------------------------
======ppo Validation from:  2024-05-23 to  2024-06-24
ppo Sharpe Ratio:  0.08023325693542599
======Best Model Retraining from:  2010-01-04 to  2024-06-24
======Trading from:  2024-06-24 to  2024-07-23
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-06-24
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_660_8
---------------------------------------
| time/                 |             |
|    fps                | 132         |
|    iterations         | 100         |
|    time_elapsed       | 3           |
|    total_timesteps    | 500         |
| train/                |             |
|    entropy_loss       | -38.3       |
|    explained_variance | 0           |
|    learning_rate      | 0.0007      |
|    n_updates          | 99          |
|    policy_loss        | -188        |
|    reward             | 0.046553884 |
|    std                | 1           |
|    value_loss         | 23          |
---------------------------------------
======a2c Validation from:  2024-06-24 to  2024-07-23
a2c Sharpe Ratio:  0.6111814034574284
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_660_8
======sac Validation from:  2024-06-24 to  2024-07-23
sac Sharpe Ratio:  0.6699754953029071
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_660_8
-----------------------------------
| time/              |            |
|    fps             | 149        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -1.9444602 |
-----------------------------------
======ppo Validation from:  2024-06-24 to  2024-07-23
ppo Sharpe Ratio:  0.6287312737734205
======Best Model Retraining from:  2010-01-04 to  2024-07-23
======Trading from:  2024-07-23 to  2024-08-20
Training Ensemble Models:  67%|██████▋   | 2/3 [28:14<14:06, 846.79s/it]
Ensemble Strategy took:  14.080795526504517  minutes
PPO training completed!

Running SAC...
============Start Ensemble Strategy============
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-01-03
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_40_11
--------------------------------------
| time/                 |            |
|    fps                | 151        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.4      |
|    explained_variance | 0          |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | -329       |
|    reward             | -0.7496336 |
|    std                | 1          |
|    value_loss         | 91.1       |
--------------------------------------
======a2c Validation from:  2022-01-03 to  2022-02-01
a2c Sharpe Ratio:  -0.277005744446282
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_40_10
======sac Validation from:  2022-01-03 to  2022-02-01
sac Sharpe Ratio:  -0.04405103505468476
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_40_10
-----------------------------------
| time/              |            |
|    fps             | 171        |
|    iterations      | 1          |
|    time_elapsed    | 11         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -0.8157077 |
-----------------------------------
======ppo Validation from:  2022-01-03 to  2022-02-01
ppo Sharpe Ratio:  -0.36300204741126324
======Best Model Retraining from:  2010-01-04 to  2022-02-01
======Trading from:  2022-02-01 to  2022-03-02
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-02-01
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_60_9
--------------------------------------
| time/                 |            |
|    fps                | 155        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.3      |
|    explained_variance | 1.79e-07   |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | -355       |
|    reward             | 0.13307081 |
|    std                | 1          |
|    value_loss         | 105        |
--------------------------------------
======a2c Validation from:  2022-02-01 to  2022-03-02
a2c Sharpe Ratio:  -0.5611623945081106
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_60_9
======sac Validation from:  2022-02-01 to  2022-03-02
sac Sharpe Ratio:  -0.6246327525059233
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_60_9
-----------------------------------
| time/              |            |
|    fps             | 173        |
|    iterations      | 1          |
|    time_elapsed    | 11         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.24973702 |
-----------------------------------
======ppo Validation from:  2022-02-01 to  2022-03-02
ppo Sharpe Ratio:  -0.6073298004682655
======Best Model Retraining from:  2010-01-04 to  2022-03-02
======Trading from:  2022-03-02 to  2022-03-30
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-03-02
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_80_9
-------------------------------------
| time/                 |           |
|    fps                | 150       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.5     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -84.2     |
|    reward             | 0.7372144 |
|    std                | 1.01      |
|    value_loss         | 8.61      |
-------------------------------------
======a2c Validation from:  2022-03-02 to  2022-03-30
a2c Sharpe Ratio:  0.6717765041614653
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_80_9
======sac Validation from:  2022-03-02 to  2022-03-30
sac Sharpe Ratio:  0.7707561641662122
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_80_9
-----------------------------------
| time/              |            |
|    fps             | 171        |
|    iterations      | 1          |
|    time_elapsed    | 11         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -0.7151785 |
-----------------------------------
======ppo Validation from:  2022-03-02 to  2022-03-30
ppo Sharpe Ratio:  0.6476868285575601
======Best Model Retraining from:  2010-01-04 to  2022-03-30
======Trading from:  2022-03-30 to  2022-04-28
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-03-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_100_9
-------------------------------------
| time/                 |           |
|    fps                | 151       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -152      |
|    reward             | 1.0973939 |
|    std                | 1         |
|    value_loss         | 22.5      |
-------------------------------------
======a2c Validation from:  2022-03-30 to  2022-04-28
a2c Sharpe Ratio:  -0.7012396586827544
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_100_9
======sac Validation from:  2022-03-30 to  2022-04-28
sac Sharpe Ratio:  -0.5456923296988201
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_100_9
-------------------------------------
| time/              |              |
|    fps             | 170          |
|    iterations      | 1            |
|    time_elapsed    | 11           |
|    total_timesteps | 2048         |
| train/             |              |
|    reward          | -0.106442794 |
-------------------------------------
======ppo Validation from:  2022-03-30 to  2022-04-28
ppo Sharpe Ratio:  -0.6371146221640749
======Best Model Retraining from:  2010-01-04 to  2022-04-28
======Trading from:  2022-04-28 to  2022-05-26
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-04-28
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_120_9
-------------------------------------
| time/                 |           |
|    fps                | 151       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -4.77     |
|    reward             | 1.3012835 |
|    std                | 1         |
|    value_loss         | 7.93      |
-------------------------------------
======a2c Validation from:  2022-04-28 to  2022-05-26
a2c Sharpe Ratio:  0.10950351753123083
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_120_9
======sac Validation from:  2022-04-28 to  2022-05-26
sac Sharpe Ratio:  0.17590263634195025
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_120_9
----------------------------------
| time/              |           |
|    fps             | 168       |
|    iterations      | 1         |
|    time_elapsed    | 12        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 1.2745026 |
----------------------------------
======ppo Validation from:  2022-04-28 to  2022-05-26
ppo Sharpe Ratio:  0.11921424693918574
======Best Model Retraining from:  2010-01-04 to  2022-05-26
======Trading from:  2022-05-26 to  2022-06-27
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-05-26
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_140_9
-------------------------------------
| time/                 |           |
|    fps                | 149       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -290      |
|    reward             | 1.7171904 |
|    std                | 1         |
|    value_loss         | 64.4      |
-------------------------------------
======a2c Validation from:  2022-05-26 to  2022-06-27
a2c Sharpe Ratio:  -0.021113410559190415
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_140_9
======sac Validation from:  2022-05-26 to  2022-06-27
sac Sharpe Ratio:  -0.07779444162788408
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_140_9
-----------------------------------
| time/              |            |
|    fps             | 171        |
|    iterations      | 1          |
|    time_elapsed    | 11         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -1.4800094 |
-----------------------------------
======ppo Validation from:  2022-05-26 to  2022-06-27
ppo Sharpe Ratio:  -0.19747880809142454
======Best Model Retraining from:  2010-01-04 to  2022-06-27
======Trading from:  2022-06-27 to  2022-07-26
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-06-27
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_160_9
-------------------------------------
| time/                 |           |
|    fps                | 151       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | -1.19e-07 |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -294      |
|    reward             | 0.6305087 |
|    std                | 0.999     |
|    value_loss         | 64        |
-------------------------------------
======a2c Validation from:  2022-06-27 to  2022-07-26
a2c Sharpe Ratio:  0.1770778525131268
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_160_9
======sac Validation from:  2022-06-27 to  2022-07-26
sac Sharpe Ratio:  0.33772878334006995
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_160_9
-----------------------------------
| time/              |            |
|    fps             | 169        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -0.6801457 |
-----------------------------------
======ppo Validation from:  2022-06-27 to  2022-07-26
ppo Sharpe Ratio:  0.078897336723414
======Best Model Retraining from:  2010-01-04 to  2022-07-26
======Trading from:  2022-07-26 to  2022-08-23
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-07-26
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_180_9
------------------------------------
| time/                 |          |
|    fps                | 148      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.3    |
|    explained_variance | 0        |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -113     |
|    reward             | 0.841531 |
|    std                | 0.998    |
|    value_loss         | 12.3     |
------------------------------------
======a2c Validation from:  2022-07-26 to  2022-08-23
a2c Sharpe Ratio:  -0.11389820366636749
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_180_9
======sac Validation from:  2022-07-26 to  2022-08-23
sac Sharpe Ratio:  -0.1328672894988044
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_180_9
----------------------------------
| time/              |           |
|    fps             | 170       |
|    iterations      | 1         |
|    time_elapsed    | 12        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 1.7382145 |
----------------------------------
======ppo Validation from:  2022-07-26 to  2022-08-23
ppo Sharpe Ratio:  -0.4070263009409465
======Best Model Retraining from:  2010-01-04 to  2022-08-23
======Trading from:  2022-08-23 to  2022-09-21
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-08-23
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_200_9
------------------------------------
| time/                 |          |
|    fps                | 150      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.4    |
|    explained_variance | -0.0167  |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -629     |
|    reward             | 1.510617 |
|    std                | 1        |
|    value_loss         | 308      |
------------------------------------
======a2c Validation from:  2022-08-23 to  2022-09-21
a2c Sharpe Ratio:  -0.5089713173267698
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_200_9
======sac Validation from:  2022-08-23 to  2022-09-21
sac Sharpe Ratio:  -0.34645214826347487
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_200_9
------------------------------------
| time/              |             |
|    fps             | 168         |
|    iterations      | 1           |
|    time_elapsed    | 12          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.13645948 |
------------------------------------
======ppo Validation from:  2022-08-23 to  2022-09-21
ppo Sharpe Ratio:  -0.4072454132371545
======Best Model Retraining from:  2010-01-04 to  2022-09-21
======Trading from:  2022-09-21 to  2022-10-19
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-09-21
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_220_9
-------------------------------------
| time/                 |           |
|    fps                | 149       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -122      |
|    reward             | 4.3199925 |
|    std                | 1         |
|    value_loss         | 54.6      |
-------------------------------------
======a2c Validation from:  2022-09-21 to  2022-10-19
a2c Sharpe Ratio:  0.25176531627969445
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_220_9
======sac Validation from:  2022-09-21 to  2022-10-19
sac Sharpe Ratio:  0.305725512438637
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_220_9
------------------------------------
| time/              |             |
|    fps             | 155         |
|    iterations      | 1           |
|    time_elapsed    | 13          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.18776749 |
------------------------------------
======ppo Validation from:  2022-09-21 to  2022-10-19
ppo Sharpe Ratio:  0.0586091486833646
======Best Model Retraining from:  2010-01-04 to  2022-10-19
======Trading from:  2022-10-19 to  2022-11-16
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-10-19
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_240_9
-------------------------------------
| time/                 |           |
|    fps                | 148       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.5     |
|    explained_variance | -2.81e-05 |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -216      |
|    reward             | 2.3132193 |
|    std                | 1.01      |
|    value_loss         | 36.5      |
-------------------------------------
======a2c Validation from:  2022-10-19 to  2022-11-16
a2c Sharpe Ratio:  0.4609090177059267
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_240_9
======sac Validation from:  2022-10-19 to  2022-11-16
sac Sharpe Ratio:  0.17118324184310985
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_240_9
----------------------------------
| time/              |           |
|    fps             | 161       |
|    iterations      | 1         |
|    time_elapsed    | 12        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 0.5179037 |
----------------------------------
======ppo Validation from:  2022-10-19 to  2022-11-16
ppo Sharpe Ratio:  0.6231536551376474
======Best Model Retraining from:  2010-01-04 to  2022-11-16
======Trading from:  2022-11-16 to  2022-12-15
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-11-16
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_260_9
-------------------------------------
| time/                 |           |
|    fps                | 143       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.2     |
|    explained_variance | 1.19e-07  |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -223      |
|    reward             | 3.1127691 |
|    std                | 0.995     |
|    value_loss         | 69.2      |
-------------------------------------
======a2c Validation from:  2022-11-16 to  2022-12-15
a2c Sharpe Ratio:  0.2565992575610972
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_260_9
======sac Validation from:  2022-11-16 to  2022-12-15
sac Sharpe Ratio:  0.0998137624501958
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_260_9
-----------------------------------
| time/              |            |
|    fps             | 157        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -0.6490559 |
-----------------------------------
======ppo Validation from:  2022-11-16 to  2022-12-15
ppo Sharpe Ratio:  0.23624924966179553
======Best Model Retraining from:  2010-01-04 to  2022-12-15
======Trading from:  2022-12-15 to  2023-01-17
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2022-12-15
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_280_9
-------------------------------------
| time/                 |           |
|    fps                | 145       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.5     |
|    explained_variance | -2.38e-07 |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | 214       |
|    reward             | 4.083568  |
|    std                | 1.01      |
|    value_loss         | 105       |
-------------------------------------
======a2c Validation from:  2022-12-15 to  2023-01-17
a2c Sharpe Ratio:  0.8022037680823477
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_280_9
======sac Validation from:  2022-12-15 to  2023-01-17
sac Sharpe Ratio:  0.7580717262514154
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_280_9
-----------------------------------
| time/              |            |
|    fps             | 160        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.14893843 |
-----------------------------------
======ppo Validation from:  2022-12-15 to  2023-01-17
ppo Sharpe Ratio:  0.592535893431476
======Best Model Retraining from:  2010-01-04 to  2023-01-17
======Trading from:  2023-01-17 to  2023-02-14
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-01-17
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_300_9
-------------------------------------
| time/                 |           |
|    fps                | 142       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -182      |
|    reward             | 1.4137645 |
|    std                | 1         |
|    value_loss         | 33.6      |
-------------------------------------
======a2c Validation from:  2023-01-17 to  2023-02-14
a2c Sharpe Ratio:  0.059161189833591366
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_300_9
======sac Validation from:  2023-01-17 to  2023-02-14
sac Sharpe Ratio:  0.23581382014680802
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_300_9
-----------------------------------
| time/              |            |
|    fps             | 159        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.30445197 |
-----------------------------------
======ppo Validation from:  2023-01-17 to  2023-02-14
ppo Sharpe Ratio:  0.2664905238878775
======Best Model Retraining from:  2010-01-04 to  2023-02-14
======Trading from:  2023-02-14 to  2023-03-15
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-02-14
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_320_9
------------------------------------
| time/                 |          |
|    fps                | 136      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.6    |
|    explained_variance | 0        |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -152     |
|    reward             | 2.520211 |
|    std                | 1.01     |
|    value_loss         | 29.3     |
------------------------------------
======a2c Validation from:  2023-02-14 to  2023-03-15
a2c Sharpe Ratio:  -0.2646310749029866
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_320_9
======sac Validation from:  2023-02-14 to  2023-03-15
sac Sharpe Ratio:  -0.37729485660185924
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_320_9
-----------------------------------
| time/              |            |
|    fps             | 161        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -0.6530828 |
-----------------------------------
======ppo Validation from:  2023-02-14 to  2023-03-15
ppo Sharpe Ratio:  -0.49144147809832944
======Best Model Retraining from:  2010-01-04 to  2023-03-15
======Trading from:  2023-03-15 to  2023-04-13
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-03-15
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_340_9
-------------------------------------
| time/                 |           |
|    fps                | 144       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.2     |
|    explained_variance | 0.0314    |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -287      |
|    reward             | 5.7479925 |
|    std                | 0.997     |
|    value_loss         | 114       |
-------------------------------------
======a2c Validation from:  2023-03-15 to  2023-04-13
a2c Sharpe Ratio:  0.6055789845633207
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_340_9
======sac Validation from:  2023-03-15 to  2023-04-13
sac Sharpe Ratio:  0.2574776236703614
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_340_9
-----------------------------------
| time/              |            |
|    fps             | 160        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -1.7497588 |
-----------------------------------
======ppo Validation from:  2023-03-15 to  2023-04-13
ppo Sharpe Ratio:  0.14880947373827697
======Best Model Retraining from:  2010-01-04 to  2023-04-13
======Trading from:  2023-04-13 to  2023-05-11
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-04-13
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_360_9
-------------------------------------
| time/                 |           |
|    fps                | 143       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.2     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -56.4     |
|    reward             | 1.7145574 |
|    std                | 0.996     |
|    value_loss         | 9.41      |
-------------------------------------
======a2c Validation from:  2023-04-13 to  2023-05-11
a2c Sharpe Ratio:  -0.1116394160180667
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_360_9
======sac Validation from:  2023-04-13 to  2023-05-11
sac Sharpe Ratio:  -0.24399012289546446
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_360_9
-----------------------------------
| time/              |            |
|    fps             | 161        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.55784476 |
-----------------------------------
======ppo Validation from:  2023-04-13 to  2023-05-11
ppo Sharpe Ratio:  -0.2295441143093032
======Best Model Retraining from:  2010-01-04 to  2023-05-11
======Trading from:  2023-05-11 to  2023-06-09
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-05-11
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_380_9
------------------------------------
| time/                 |          |
|    fps                | 141      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.3    |
|    explained_variance | 0        |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -138     |
|    reward             | 1.566811 |
|    std                | 1        |
|    value_loss         | 17.9     |
------------------------------------
======a2c Validation from:  2023-05-11 to  2023-06-09
a2c Sharpe Ratio:  0.34306720618677666
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_380_9
======sac Validation from:  2023-05-11 to  2023-06-09
sac Sharpe Ratio:  0.2578363874018719
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_380_9
----------------------------------
| time/              |           |
|    fps             | 160       |
|    iterations      | 1         |
|    time_elapsed    | 12        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 0.3513223 |
----------------------------------
======ppo Validation from:  2023-05-11 to  2023-06-09
ppo Sharpe Ratio:  0.23155890257892242
======Best Model Retraining from:  2010-01-04 to  2023-06-09
======Trading from:  2023-06-09 to  2023-07-11
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-06-09
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_400_9
-------------------------------------
| time/                 |           |
|    fps                | 145       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.1     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -27.8     |
|    reward             | 1.0341798 |
|    std                | 0.992     |
|    value_loss         | 18.2      |
-------------------------------------
======a2c Validation from:  2023-06-09 to  2023-07-11
a2c Sharpe Ratio:  0.4390543165657006
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_400_9
======sac Validation from:  2023-06-09 to  2023-07-11
sac Sharpe Ratio:  0.28064924519821277
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_400_9
-----------------------------------
| time/              |            |
|    fps             | 158        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -0.4240753 |
-----------------------------------
======ppo Validation from:  2023-06-09 to  2023-07-11
ppo Sharpe Ratio:  0.3708796821634243
======Best Model Retraining from:  2010-01-04 to  2023-07-11
======Trading from:  2023-07-11 to  2023-08-08
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-07-11
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_420_9
-------------------------------------
| time/                 |           |
|    fps                | 141       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | -1.19e-07 |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | 77.2      |
|    reward             | 2.5170631 |
|    std                | 1         |
|    value_loss         | 24.5      |
-------------------------------------
======a2c Validation from:  2023-07-11 to  2023-08-08
a2c Sharpe Ratio:  0.11929494076766058
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_420_9
======sac Validation from:  2023-07-11 to  2023-08-08
sac Sharpe Ratio:  -0.11547549667423432
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_420_9
----------------------------------
| time/              |           |
|    fps             | 157       |
|    iterations      | 1         |
|    time_elapsed    | 12        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 1.1858159 |
----------------------------------
======ppo Validation from:  2023-07-11 to  2023-08-08
ppo Sharpe Ratio:  0.05202958408110215
======Best Model Retraining from:  2010-01-04 to  2023-08-08
======Trading from:  2023-08-08 to  2023-09-06
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-08-08
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_440_9
-------------------------------------
| time/                 |           |
|    fps                | 143       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.1     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -88.1     |
|    reward             | 2.0726461 |
|    std                | 0.994     |
|    value_loss         | 17.3      |
-------------------------------------
======a2c Validation from:  2023-08-08 to  2023-09-06
a2c Sharpe Ratio:  -0.326462027375528
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_440_9
======sac Validation from:  2023-08-08 to  2023-09-06
sac Sharpe Ratio:  -0.09009202048377843
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_440_9
------------------------------------
| time/              |             |
|    fps             | 154         |
|    iterations      | 1           |
|    time_elapsed    | 13          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | 0.116301425 |
------------------------------------
======ppo Validation from:  2023-08-08 to  2023-09-06
ppo Sharpe Ratio:  -0.19109430799463434
======Best Model Retraining from:  2010-01-04 to  2023-09-06
======Trading from:  2023-09-06 to  2023-10-04
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-09-06
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_460_9
-------------------------------------
| time/                 |           |
|    fps                | 141       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -249      |
|    reward             | 1.8425769 |
|    std                | 1         |
|    value_loss         | 46.5      |
-------------------------------------
======a2c Validation from:  2023-09-06 to  2023-10-04
a2c Sharpe Ratio:  -0.7748721421325274
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_460_9
======sac Validation from:  2023-09-06 to  2023-10-04
sac Sharpe Ratio:  -0.9237468048585713
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_460_9
-----------------------------------
| time/              |            |
|    fps             | 157        |
|    iterations      | 1          |
|    time_elapsed    | 12         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -1.8436955 |
-----------------------------------
======ppo Validation from:  2023-09-06 to  2023-10-04
ppo Sharpe Ratio:  -1.1031002270561963
======Best Model Retraining from:  2010-01-04 to  2023-10-04
======Trading from:  2023-10-04 to  2023-11-01
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-10-04
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_480_9
-------------------------------------
| time/                 |           |
|    fps                | 144       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0.152     |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -96.4     |
|    reward             | 1.1691322 |
|    std                | 1         |
|    value_loss         | 42.4      |
-------------------------------------
======a2c Validation from:  2023-10-04 to  2023-11-01
a2c Sharpe Ratio:  -0.7009656029491906
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_480_9
======sac Validation from:  2023-10-04 to  2023-11-01
sac Sharpe Ratio:  -0.45188856257308413
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_480_9
------------------------------------
| time/              |             |
|    fps             | 156         |
|    iterations      | 1           |
|    time_elapsed    | 13          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.71137464 |
------------------------------------
======ppo Validation from:  2023-10-04 to  2023-11-01
ppo Sharpe Ratio:  -0.442711173362212
======Best Model Retraining from:  2010-01-04 to  2023-11-01
======Trading from:  2023-11-01 to  2023-11-30
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-11-01
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_500_9
-------------------------------------
| time/                 |           |
|    fps                | 134       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.4     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -195      |
|    reward             | 0.8058053 |
|    std                | 1         |
|    value_loss         | 33.9      |
-------------------------------------
======a2c Validation from:  2023-11-01 to  2023-11-30
a2c Sharpe Ratio:  0.7709295145749766
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_500_9
======sac Validation from:  2023-11-01 to  2023-11-30
sac Sharpe Ratio:  0.6256466975855252
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_500_9
-----------------------------------
| time/              |            |
|    fps             | 155        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -0.1084854 |
-----------------------------------
======ppo Validation from:  2023-11-01 to  2023-11-30
ppo Sharpe Ratio:  0.7046735374871806
======Best Model Retraining from:  2010-01-04 to  2023-11-30
======Trading from:  2023-11-30 to  2023-12-29
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-11-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_520_9
--------------------------------------
| time/                 |            |
|    fps                | 142        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.3      |
|    explained_variance | 0.115      |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | -499       |
|    reward             | 0.89194405 |
|    std                | 0.999      |
|    value_loss         | 226        |
--------------------------------------
======a2c Validation from:  2023-11-30 to  2023-12-29
a2c Sharpe Ratio:  0.7198373613480614
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_520_9
======sac Validation from:  2023-11-30 to  2023-12-29
sac Sharpe Ratio:  0.658043805827739
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_520_9
-----------------------------------
| time/              |            |
|    fps             | 151        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | 0.36050883 |
-----------------------------------
======ppo Validation from:  2023-11-30 to  2023-12-29
ppo Sharpe Ratio:  0.8155978054301785
======Best Model Retraining from:  2010-01-04 to  2023-12-29
======Trading from:  2023-12-29 to  2024-01-30
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2023-12-29
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_540_9
------------------------------------
| time/                 |          |
|    fps                | 136      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.3    |
|    explained_variance | -0.0109  |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -326     |
|    reward             | 1.699114 |
|    std                | 1        |
|    value_loss         | 111      |
------------------------------------
======a2c Validation from:  2023-12-29 to  2024-01-30
a2c Sharpe Ratio:  0.24050451831903708
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_540_9
======sac Validation from:  2023-12-29 to  2024-01-30
sac Sharpe Ratio:  0.2666580168221358
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_540_9
----------------------------------
| time/              |           |
|    fps             | 152       |
|    iterations      | 1         |
|    time_elapsed    | 13        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | -1.233893 |
----------------------------------
======ppo Validation from:  2023-12-29 to  2024-01-30
ppo Sharpe Ratio:  0.3365675443796178
======Best Model Retraining from:  2010-01-04 to  2024-01-30
======Trading from:  2024-01-30 to  2024-02-28
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-01-30
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_560_9
-------------------------------------
| time/                 |           |
|    fps                | 134       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.5     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -88.2     |
|    reward             | 2.5109413 |
|    std                | 1.01      |
|    value_loss         | 24.7      |
-------------------------------------
======a2c Validation from:  2024-01-30 to  2024-02-28
a2c Sharpe Ratio:  0.555724643716136
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_560_9
======sac Validation from:  2024-01-30 to  2024-02-28
sac Sharpe Ratio:  0.48714309324674226
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_560_9
------------------------------------
| time/              |             |
|    fps             | 153         |
|    iterations      | 1           |
|    time_elapsed    | 13          |
|    total_timesteps | 2048        |
| train/             |             |
|    reward          | -0.46166068 |
------------------------------------
======ppo Validation from:  2024-01-30 to  2024-02-28
ppo Sharpe Ratio:  0.40821735092729156
======Best Model Retraining from:  2010-01-04 to  2024-02-28
======Trading from:  2024-02-28 to  2024-03-27
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-02-28
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_580_9
-------------------------------------
| time/                 |           |
|    fps                | 137       |
|    iterations         | 100       |
|    time_elapsed       | 3         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -112      |
|    reward             | 2.4579809 |
|    std                | 0.998     |
|    value_loss         | 26.1      |
-------------------------------------
======a2c Validation from:  2024-02-28 to  2024-03-27
a2c Sharpe Ratio:  0.5279580322259226
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_580_9
======sac Validation from:  2024-02-28 to  2024-03-27
sac Sharpe Ratio:  0.492814972425472
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_580_9
----------------------------------
| time/              |           |
|    fps             | 147       |
|    iterations      | 1         |
|    time_elapsed    | 13        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 0.6383551 |
----------------------------------
======ppo Validation from:  2024-02-28 to  2024-03-27
ppo Sharpe Ratio:  0.4339630599170644
======Best Model Retraining from:  2010-01-04 to  2024-03-27
======Trading from:  2024-03-27 to  2024-04-25
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-03-27
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_600_9
-------------------------------------
| time/                 |           |
|    fps                | 124       |
|    iterations         | 100       |
|    time_elapsed       | 4         |
|    total_timesteps    | 500       |
| train/                |           |
|    entropy_loss       | -38.3     |
|    explained_variance | 0         |
|    learning_rate      | 0.0007    |
|    n_updates          | 99        |
|    policy_loss        | -96.8     |
|    reward             | 1.1630917 |
|    std                | 0.999     |
|    value_loss         | 14.5      |
-------------------------------------
======a2c Validation from:  2024-03-27 to  2024-04-25
a2c Sharpe Ratio:  -0.3213152278324027
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_600_9
======sac Validation from:  2024-03-27 to  2024-04-25
sac Sharpe Ratio:  -0.08780048147965884
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_600_9
-------------------------------------
| time/              |              |
|    fps             | 150          |
|    iterations      | 1            |
|    time_elapsed    | 13           |
|    total_timesteps | 2048         |
| train/             |              |
|    reward          | -0.087406956 |
-------------------------------------
======ppo Validation from:  2024-03-27 to  2024-04-25
ppo Sharpe Ratio:  -0.3582461955713448
======Best Model Retraining from:  2010-01-04 to  2024-04-25
======Trading from:  2024-04-25 to  2024-05-23
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-04-25
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_620_9
------------------------------------
| time/                 |          |
|    fps                | 138      |
|    iterations         | 100      |
|    time_elapsed       | 3        |
|    total_timesteps    | 500      |
| train/                |          |
|    entropy_loss       | -38.4    |
|    explained_variance | 0        |
|    learning_rate      | 0.0007   |
|    n_updates          | 99       |
|    policy_loss        | -28.6    |
|    reward             | 3.054659 |
|    std                | 1        |
|    value_loss         | 46.6     |
------------------------------------
======a2c Validation from:  2024-04-25 to  2024-05-23
a2c Sharpe Ratio:  0.9901954341111886
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_620_9
======sac Validation from:  2024-04-25 to  2024-05-23
sac Sharpe Ratio:  0.832316278786897
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_620_9
-----------------------------------
| time/              |            |
|    fps             | 146        |
|    iterations      | 1          |
|    time_elapsed    | 13         |
|    total_timesteps | 2048       |
| train/             |            |
|    reward          | -1.0277015 |
-----------------------------------
======ppo Validation from:  2024-04-25 to  2024-05-23
ppo Sharpe Ratio:  0.5816808784786365
======Best Model Retraining from:  2010-01-04 to  2024-05-23
======Trading from:  2024-05-23 to  2024-06-24
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-05-23
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_640_9
--------------------------------------
| time/                 |            |
|    fps                | 133        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.5      |
|    explained_variance | 0          |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | -274       |
|    reward             | 0.85620445 |
|    std                | 1.01       |
|    value_loss         | 50.6       |
--------------------------------------
======a2c Validation from:  2024-05-23 to  2024-06-24
a2c Sharpe Ratio:  0.13622863578058597
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_640_9
======sac Validation from:  2024-05-23 to  2024-06-24
sac Sharpe Ratio:  0.19449089123837904
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_640_9
----------------------------------
| time/              |           |
|    fps             | 149       |
|    iterations      | 1         |
|    time_elapsed    | 13        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 0.4756614 |
----------------------------------
======ppo Validation from:  2024-05-23 to  2024-06-24
ppo Sharpe Ratio:  0.4183942172623797
======Best Model Retraining from:  2010-01-04 to  2024-06-24
======Trading from:  2024-06-24 to  2024-07-23
============================================
turbulence_threshold:  227.87028410067566
======Model training from:  2010-01-04 to  2024-06-24
======a2c Training========
{'n_steps': 5, 'ent_coef': 0.005, 'learning_rate': 0.0007}
Using cpu device
Logging to tensorboard_log/a2c/a2c_660_9
--------------------------------------
| time/                 |            |
|    fps                | 137        |
|    iterations         | 100        |
|    time_elapsed       | 3          |
|    total_timesteps    | 500        |
| train/                |            |
|    entropy_loss       | -38.3      |
|    explained_variance | -2.38e-07  |
|    learning_rate      | 0.0007     |
|    n_updates          | 99         |
|    policy_loss        | 106        |
|    reward             | 0.85311204 |
|    std                | 0.998      |
|    value_loss         | 43.3       |
--------------------------------------
======a2c Validation from:  2024-06-24 to  2024-07-23
a2c Sharpe Ratio:  0.5300401769588926
======sac Training========
{'buffer_size': 1000, 'learning_rate': 0.0003, 'batch_size': 256, 'ent_coef': 'auto'}
Using cpu device
Logging to tensorboard_log/sac/sac_660_9
======sac Validation from:  2024-06-24 to  2024-07-23
sac Sharpe Ratio:  0.3135970401477538
======ppo Training========
{'ent_coef': 0.01, 'n_steps': 2048, 'learning_rate': 0.00025, 'batch_size': 128}
Using cpu device
Logging to tensorboard_log/ppo/ppo_660_9
----------------------------------
| time/              |           |
|    fps             | 151       |
|    iterations      | 1         |
|    time_elapsed    | 13        |
|    total_timesteps | 2048      |
| train/             |           |
|    reward          | 1.4515013 |
----------------------------------
======ppo Validation from:  2024-06-24 to  2024-07-23
ppo Sharpe Ratio:  0.6447057670454595
======Best Model Retraining from:  2010-01-04 to  2024-07-23
======Trading from:  2024-07-23 to  2024-08-20
Training Ensemble Models: 100%|██████████| 3/3 [42:25<00:00, 848.35s/it]
Ensemble Strategy took:  14.176815529664358  minutes
SAC training completed!

import pickle
with open('PPO.pkl', 'wb') as f:
    pickle.dump(PPO, f)

with open('SAC.pkl', 'wb') as f:
    pickle.dump(SAC, f)

with open('A2C.pkl', 'wb') as f:
    pickle.dump(A2C, f)
data_risk_indicator = processed[(processed.date<TRAIN_END_DATE) & (processed.date>=TRAIN_START_DATE)]
insample_risk_indicator = data_risk_indicator.drop_duplicates(subset=['date'])
insample_risk_indicator
date tic adj_close close high low open volume macd boll_ub boll_lb rsi_30 cci_30 dx_30 close_30_sma close_60_sma turbulence
0 2010-01-04 A 20.084951 22.389128 22.625179 22.267525 22.453505 3815561.0 0.000000 22.611468 21.923583 0.000000 -66.666667 100.000000 22.389128 22.389128 0.000000
27 2010-01-05 A 19.866777 22.145924 22.331903 22.002861 22.324751 4186031.0 -0.005457 22.611468 21.923583 0.000000 -66.666667 100.000000 22.267526 22.267526 0.000000
54 2010-01-06 A 19.796186 22.067240 22.174536 22.002861 22.067240 3243779.0 -0.009393 22.536374 21.865154 0.000000 -69.260722 100.000000 22.200764 22.200764 0.000000
81 2010-01-07 A 19.770527 22.038628 22.045780 21.816881 22.017166 3095172.0 -0.011986 22.478628 21.841831 0.000000 -94.985258 100.000000 22.160230 22.160230 0.000000
108 2010-01-08 A 19.764101 22.031473 22.067240 21.745352 21.917025 3733918.0 -0.013427 22.433302 21.835654 0.000000 -79.514800 100.000000 22.134478 22.134478 0.000000
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
77382 2021-05-24 A 130.549561 133.339996 134.410004 132.529999 133.509995 1312300.0 0.151901 136.208348 128.070649 55.343350 26.026642 2.659779 132.797665 128.330166 7.903010
77409 2021-05-25 A 130.441879 133.229996 134.800003 133.009995 133.410004 1890600.0 0.268181 135.544688 128.409309 55.185016 34.575480 4.863827 132.806332 128.475999 8.542653
77436 2021-05-26 A 130.500626 133.289993 138.000000 133.250000 136.300003 2498400.0 0.361014 135.276344 128.526652 55.257242 77.083471 20.627219 132.850332 128.636832 10.050386
77463 2021-05-27 A 134.661667 137.539993 138.139999 133.160004 133.320007 3699600.0 0.768664 136.181647 127.960348 59.983213 122.915437 21.237547 132.992331 128.940832 21.773050
77490 2021-05-28 A 135.239349 138.130005 139.210007 138.000000 138.600006 1264400.0 1.126354 137.183822 127.407174 60.581166 185.321637 25.893136 133.110665 129.326499 11.838870

2871 rows × 17 columns

insample_risk_indicator.describe()
adj_close close high low open volume macd boll_ub boll_lb rsi_30 cci_30 dx_30 close_30_sma close_60_sma turbulence
count 2871.000000 2871.000000 2871.000000 2871.000000 2871.000000 2.871000e+03 2871.000000 2871.000000 2871.000000 2871.000000 2871.000000 2871.000000 2871.000000 2871.000000 2871.000000
mean 48.404036 51.249515 51.749015 50.729619 51.239579 3.209902e+06 0.267835 53.501758 48.264174 53.230177 27.664638 23.474557 50.689741 50.118674 32.702407
std 25.964746 25.938871 26.192268 25.719282 25.952034 2.188438e+06 0.891018 26.731276 24.374863 8.098559 108.937549 16.315274 25.291504 24.631983 52.894444
min 17.306425 19.291845 19.706724 19.084406 19.334764 2.719000e+05 -4.673526 21.209599 18.619792 0.000000 -330.668642 0.015052 20.245112 20.464592 0.000000
25% 28.420526 31.541488 31.866953 31.119456 31.527182 1.717750e+06 -0.229932 32.997811 29.585806 47.838797 -53.918302 10.308317 31.252027 30.838281 13.497704
50% 38.141766 41.344776 41.623749 41.022888 41.310001 2.594100e+06 0.267917 42.808877 39.524896 53.549745 43.832910 20.661461 41.036958 40.670601 21.999442
75% 64.572243 67.540001 68.165001 66.900002 67.500000 4.118744e+06 0.704089 71.005960 63.988851 59.345005 111.318698 34.552957 67.909833 67.403833 35.184550
max 135.239349 138.130005 139.210007 138.000000 138.600006 2.536867e+07 3.478340 138.558282 130.510372 73.489382 424.656082 100.000000 133.110665 129.326499 1164.879747
insample_risk_indicator.turbulence.quantile(0.996)
409.8218417382907
insample_risk_indicator.turbulence.describe()
count    2871.000000
mean       32.702407
std        52.894444
min         0.000000
25%        13.497704
50%        21.999442
75%        35.184550
max      1164.879747
Name: turbulence, dtype: float64
ensemble_models_summary
{'A2C':    Iter   Val Start     Val End Model Used A2C Sharpe PPO Sharpe DDPG Sharpe  \
 0    40  2022-01-03  2022-02-01        SAC  -0.423922  -0.273439        None   
 1    60  2022-02-01  2022-03-02        A2C  -0.453345  -0.657718        None   
 2    80  2022-03-02  2022-03-30        SAC   0.864892   0.684605        None   
 3   100  2022-03-30  2022-04-28        A2C   -0.34253  -0.490712        None   
 4   120  2022-04-28  2022-05-26        A2C   0.519452   0.153582        None   
 5   140  2022-05-26  2022-06-27        SAC  -0.260147  -0.222712        None   
 6   160  2022-06-27  2022-07-26        SAC   0.332858   0.258652        None   
 7   180  2022-07-26  2022-08-23        SAC  -0.262171  -0.291139        None   
 8   200  2022-08-23  2022-09-21        PPO  -0.372933  -0.360953        None   
 9   220  2022-09-21  2022-10-19        SAC   0.209318   0.261868        None   
 10  240  2022-10-19  2022-11-16        A2C   0.755574   0.506843        None   
 11  260  2022-11-16  2022-12-15        SAC   0.016867  -0.101778        None   
 12  280  2022-12-15  2023-01-17        SAC   0.491225   0.498177        None   
 13  300  2023-01-17  2023-02-14        A2C   0.363999   0.266008        None   
 14  320  2023-02-14  2023-03-15        PPO  -0.379639   -0.35501        None   
 15  340  2023-03-15  2023-04-13        SAC   0.458739   0.438165        None   
 16  360  2023-04-13  2023-05-11        SAC  -0.159019  -0.060665        None   
 17  380  2023-05-11  2023-06-09        PPO   0.570381   0.600905        None   
 18  400  2023-06-09  2023-07-11        A2C   0.513168   0.323202        None   
 19  420  2023-07-11  2023-08-08        SAC  -0.161957  -0.118398        None   
 20  440  2023-08-08  2023-09-06        PPO  -0.110935    0.01418        None   
 21  460  2023-09-06  2023-10-04        A2C  -0.961762  -1.331902        None   
 22  480  2023-10-04  2023-11-01        SAC  -0.545037   -0.53227        None   
 23  500  2023-11-01  2023-11-30        PPO  -0.037628   0.721639        None   
 24  520  2023-11-30  2023-12-29        PPO   0.765429   0.850939        None   
 25  540  2023-12-29  2024-01-30        SAC   0.040378  -0.189469        None   
 26  560  2024-01-30  2024-02-28        A2C    0.64016   0.588847        None   
 27  580  2024-02-28  2024-03-27        A2C   0.414401   0.206586        None   
 28  600  2024-03-27  2024-04-25        PPO   -0.28788  -0.241008        None   
 29  620  2024-04-25  2024-05-23        A2C   0.724756   0.497639        None   
 30  640  2024-05-23  2024-06-24        SAC   0.072148   0.152596        None   
 31  660  2024-06-24  2024-07-23        A2C   0.422525   0.276007        None   
 
    SAC Sharpe TD3 Sharpe  
 0   -0.160689       None  
 1   -0.454324       None  
 2    0.927744       None  
 3   -0.563518       None  
 4    0.186095       None  
 5   -0.091835       None  
 6    0.461719       None  
 7   -0.255906       None  
 8   -0.492265       None  
 9    0.314763       None  
 10   0.642621       None  
 11   0.157658       None  
 12   0.627456       None  
 13  -0.098879       None  
 14  -0.619906       None  
 15   0.580698       None  
 16   0.019134       None  
 17   0.136974       None  
 18   0.205081       None  
 19   0.005009       None  
 20  -0.147471       None  
 21  -0.992069       None  
 22  -0.516956       None  
 23   0.706375       None  
 24   0.697468       None  
 25   0.409176       None  
 26   0.348987       None  
 27   0.225673       None  
 28  -0.281183       None  
 29   0.240712       None  
 30   0.557386       None  
 31   0.217699       None  ,
 'PPO':    Iter   Val Start     Val End Model Used A2C Sharpe PPO Sharpe DDPG Sharpe  \
 0    40  2022-01-03  2022-02-01        A2C   0.066905  -0.156457        None   
 1    60  2022-02-01  2022-03-02        A2C   -0.58064  -0.693976        None   
 2    80  2022-03-02  2022-03-30        SAC   0.755812   0.681938        None   
 3   100  2022-03-30  2022-04-28        PPO  -0.539055  -0.410631        None   
 4   120  2022-04-28  2022-05-26        SAC   0.074859   0.081993        None   
 5   140  2022-05-26  2022-06-27        A2C  -0.131912  -0.322952        None   
 6   160  2022-06-27  2022-07-26        SAC   0.216322   0.378234        None   
 7   180  2022-07-26  2022-08-23        A2C  -0.270071  -0.358532        None   
 8   200  2022-08-23  2022-09-21        A2C   -0.40838  -0.418668        None   
 9   220  2022-09-21  2022-10-19        A2C   0.213144  -0.035512        None   
 10  240  2022-10-19  2022-11-16        A2C   0.458996   0.424008        None   
 11  260  2022-11-16  2022-12-15        SAC   0.249965   0.191531        None   
 12  280  2022-12-15  2023-01-17        SAC   0.548045   0.403125        None   
 13  300  2023-01-17  2023-02-14        A2C    0.30063   0.252601        None   
 14  320  2023-02-14  2023-03-15        PPO   -0.53802  -0.435054        None   
 15  340  2023-03-15  2023-04-13        SAC   0.389482   0.232115        None   
 16  360  2023-04-13  2023-05-11        A2C  -0.318568  -0.324569        None   
 17  380  2023-05-11  2023-06-09        A2C   0.550554   0.364075        None   
 18  400  2023-06-09  2023-07-11        SAC   0.387072   0.435392        None   
 19  420  2023-07-11  2023-08-08        SAC  -0.195489   0.080821        None   
 20  440  2023-08-08  2023-09-06        SAC   0.105962  -0.163484        None   
 21  460  2023-09-06  2023-10-04        PPO  -1.060079  -0.869687        None   
 22  480  2023-10-04  2023-11-01        PPO  -0.527054  -0.519677        None   
 23  500  2023-11-01  2023-11-30        A2C   1.100511   0.862696        None   
 24  520  2023-11-30  2023-12-29        PPO    0.63399   1.108872        None   
 25  540  2023-12-29  2024-01-30        PPO   0.393721   0.420705        None   
 26  560  2024-01-30  2024-02-28        A2C   0.569436   0.225858        None   
 27  580  2024-02-28  2024-03-27        PPO   -0.01298   0.483465        None   
 28  600  2024-03-27  2024-04-25        A2C  -0.118535  -0.366066        None   
 29  620  2024-04-25  2024-05-23        SAC   1.192422   0.495259        None   
 30  640  2024-05-23  2024-06-24        PPO  -0.198657   0.080233        None   
 31  660  2024-06-24  2024-07-23        SAC   0.611181   0.628731        None   
 
    SAC Sharpe TD3 Sharpe  
 0   -0.020449       None  
 1   -0.653997       None  
 2    0.807321       None  
 3   -0.528702       None  
 4    0.135029       None  
 5   -0.177715       None  
 6     0.45643       None  
 7   -0.296088       None  
 8   -0.420015       None  
 9    0.122171       None  
 10   0.448328       None  
 11   0.295939       None  
 12   0.710423       None  
 13   0.297472       None  
 14  -0.475949       None  
 15   0.537226       None  
 16  -0.363935       None  
 17   0.547393       None  
 18   0.467789       None  
 19   0.212915       None  
 20   0.165567       None  
 21  -0.937806       None  
 22  -0.816235       None  
 23   0.855397       None  
 24   0.739752       None  
 25   0.376273       None  
 26   0.287517       None  
 27   0.396496       None  
 28  -0.226614       None  
 29   1.294929       None  
 30  -0.015518       None  
 31   0.669975       None  ,
 'SAC':    Iter   Val Start     Val End Model Used A2C Sharpe PPO Sharpe DDPG Sharpe  \
 0    40  2022-01-03  2022-02-01        SAC  -0.277006  -0.363002        None   
 1    60  2022-02-01  2022-03-02        A2C  -0.561162   -0.60733        None   
 2    80  2022-03-02  2022-03-30        SAC   0.671777   0.647687        None   
 3   100  2022-03-30  2022-04-28        SAC   -0.70124  -0.637115        None   
 4   120  2022-04-28  2022-05-26        SAC   0.109504   0.119214        None   
 5   140  2022-05-26  2022-06-27        A2C  -0.021113  -0.197479        None   
 6   160  2022-06-27  2022-07-26        SAC   0.177078   0.078897        None   
 7   180  2022-07-26  2022-08-23        A2C  -0.113898  -0.407026        None   
 8   200  2022-08-23  2022-09-21        SAC  -0.508971  -0.407245        None   
 9   220  2022-09-21  2022-10-19        SAC   0.251765   0.058609        None   
 10  240  2022-10-19  2022-11-16        PPO   0.460909   0.623154        None   
 11  260  2022-11-16  2022-12-15        A2C   0.256599   0.236249        None   
 12  280  2022-12-15  2023-01-17        A2C   0.802204   0.592536        None   
 13  300  2023-01-17  2023-02-14        PPO   0.059161   0.266491        None   
 14  320  2023-02-14  2023-03-15        A2C  -0.264631  -0.491441        None   
 15  340  2023-03-15  2023-04-13        A2C   0.605579   0.148809        None   
 16  360  2023-04-13  2023-05-11        A2C  -0.111639  -0.229544        None   
 17  380  2023-05-11  2023-06-09        A2C   0.343067   0.231559        None   
 18  400  2023-06-09  2023-07-11        A2C   0.439054    0.37088        None   
 19  420  2023-07-11  2023-08-08        A2C   0.119295    0.05203        None   
 20  440  2023-08-08  2023-09-06        SAC  -0.326462  -0.191094        None   
 21  460  2023-09-06  2023-10-04        A2C  -0.774872    -1.1031        None   
 22  480  2023-10-04  2023-11-01        PPO  -0.700966  -0.442711        None   
 23  500  2023-11-01  2023-11-30        A2C    0.77093   0.704674        None   
 24  520  2023-11-30  2023-12-29        PPO   0.719837   0.815598        None   
 25  540  2023-12-29  2024-01-30        PPO   0.240505   0.336568        None   
 26  560  2024-01-30  2024-02-28        A2C   0.555725   0.408217        None   
 27  580  2024-02-28  2024-03-27        A2C   0.527958   0.433963        None   
 28  600  2024-03-27  2024-04-25        SAC  -0.321315  -0.358246        None   
 29  620  2024-04-25  2024-05-23        A2C   0.990195   0.581681        None   
 30  640  2024-05-23  2024-06-24        PPO   0.136229   0.418394        None   
 31  660  2024-06-24  2024-07-23        PPO    0.53004   0.644706        None   
 
    SAC Sharpe TD3 Sharpe  
 0   -0.044051       None  
 1   -0.624633       None  
 2    0.770756       None  
 3   -0.545692       None  
 4    0.175903       None  
 5   -0.077794       None  
 6    0.337729       None  
 7   -0.132867       None  
 8   -0.346452       None  
 9    0.305726       None  
 10   0.171183       None  
 11   0.099814       None  
 12   0.758072       None  
 13   0.235814       None  
 14  -0.377295       None  
 15   0.257478       None  
 16   -0.24399       None  
 17   0.257836       None  
 18   0.280649       None  
 19  -0.115475       None  
 20  -0.090092       None  
 21  -0.923747       None  
 22  -0.451889       None  
 23   0.625647       None  
 24   0.658044       None  
 25   0.266658       None  
 26   0.487143       None  
 27   0.492815       None  
 28    -0.0878       None  
 29   0.832316       None  
 30   0.194491       None  
 31   0.313597       None  }
unique_trade_date = processed[(processed.date > TEST_START_DATE)&(processed.date <= TEST_END_DATE)].date.unique()
df_trade_date = pd.DataFrame({'datadate': unique_trade_date})

df_account_value = pd.DataFrame()
for i in range(rebalance_window + validation_window, len(unique_trade_date) + 1, rebalance_window):
    temp = pd.read_csv(f'results/account_value_trade_ensemble_{i}.csv')
    df_account_value = pd.concat([df_account_value, temp], ignore_index=True)

sharpe = (252**0.5) * df_account_value['account_value'].pct_change(1).mean() / \
         df_account_value['account_value'].pct_change(1).std()
print('Sharpe Ratio:', sharpe)

df_account_value = df_account_value.join(df_trade_date[validation_window:].reset_index(drop=True))
Sharpe Ratio: 0.7494608207778994
df_account_value.head()
account_value date daily_return datadate
0 1.000000e+07 2022-02-01 NaN 2022-02-01
1 1.000098e+07 2022-02-02 0.000098 2022-02-02
2 9.995799e+06 2022-02-03 -0.000518 2022-02-03
3 9.990878e+06 2022-02-04 -0.000492 2022-02-04
4 9.991408e+06 2022-02-07 0.000053 2022-02-07
df_account_value.account_value.plot()
<Axes: >

print("==============Get Backtest Results===========")
now = datetime.datetime.now().strftime('%Y%m%d-%Hh%M')

perf_stats_all = backtest_stats(account_value=df_account_value)
perf_stats_all = pd.DataFrame(perf_stats_all)
==============Get Backtest Results===========
Annual return          0.089159
Cumulative returns     0.242226
Annual volatility      0.124444
Sharpe ratio           0.749461
Calmar ratio           0.668633
Stability              0.543350
Max drawdown          -0.133346
Omega ratio            1.142323
Sortino ratio          1.126201
Skew                        NaN
Kurtosis                    NaN
Tail ratio             1.023071
Daily value at risk   -0.015308
dtype: float64
print("==============Get Baseline Stats===========")
df_dji_ = get_baseline(
        ticker="^DJI",
        start = df_account_value.loc[0,'date'],
        end = df_account_value.loc[len(df_account_value)-1,'date'])

stats = backtest_stats(df_dji_, value_col_name = 'close')
==============Get Baseline Stats===========
[*********************100%***********************]  1 of 1 completed
Shape of DataFrame:  (639, 8)
Annual return          0.057743
Cumulative returns     0.152978
Annual volatility      0.141982
Sharpe ratio           0.466963
Calmar ratio           0.299262
Stability              0.620934
Max drawdown          -0.192950
Omega ratio            1.082838
Sortino ratio          0.659416
Skew                        NaN
Kurtosis                    NaN
Tail ratio             0.978584
Daily value at risk   -0.017625
dtype: float64
df_dji = pd.DataFrame()
df_dji['date'] = df_account_value['date']
df_dji['dji'] = df_dji_['close'] / df_dji_['close'][0] * env_kwargs["initial_amount"]
print("df_dji: ", df_dji)
df_dji.to_csv("df_dji.csv")
df_dji = df_dji.set_index(df_dji.columns[0])
print("df_dji: ", df_dji)
df_dji.to_csv("df_dji+.csv")

df_account_value.to_csv('df_account_value.csv')
df_dji:             date           dji
0    2022-02-01  1.000000e+07
1    2022-02-02  1.006450e+07
2    2022-02-03  1.010486e+07
3    2022-02-04  9.984146e+06
4    2022-02-07  9.987742e+06
..          ...           ...
635  2024-08-13  1.122151e+07
636  2024-08-14  1.132260e+07
637  2024-08-15  1.146346e+07
638  2024-08-16  1.152978e+07
639  2024-08-19           NaN

[640 rows x 2 columns]
df_dji:                       dji
date                    
2022-02-01  1.000000e+07
2022-02-02  1.006450e+07
2022-02-03  1.010486e+07
2022-02-04  9.984146e+06
2022-02-07  9.987742e+06
...                  ...
2024-08-13  1.122151e+07
2024-08-14  1.132260e+07
2024-08-15  1.146346e+07
2024-08-16  1.152978e+07
2024-08-19           NaN

[640 rows x 1 columns]
df.to_csv("df.csv")

df_result_ensemble = pd.DataFrame({
    'date': df_account_value['date'],
    'ensemble': df_account_value['account_value']
})
df_result_ensemble = df_result_ensemble.set_index('date')

print("df_result_ensemble.columns:", df_result_ensemble.columns)
print("df_trade_date:", df_trade_date)

df_result_ensemble.to_csv("df_result_ensemble.csv")
print("df_result_ensemble:", df_result_ensemble)
df_result_ensemble.columns: Index(['ensemble'], dtype='object')
df_trade_date:        datadate
0    2022-01-03
1    2022-01-04
2    2022-01-05
3    2022-01-06
4    2022-01-07
..          ...
656  2024-08-14
657  2024-08-15
658  2024-08-16
659  2024-08-19
660  2024-08-20

[661 rows x 1 columns]
df_result_ensemble:                 ensemble
date                    
2022-02-01  1.000000e+07
2022-02-02  1.000098e+07
2022-02-03  9.995799e+06
2022-02-04  9.990878e+06
2022-02-07  9.991408e+06
...                  ...
2024-08-13  1.207706e+07
2024-08-14  1.210727e+07
2024-08-15  1.225331e+07
2024-08-16  1.229087e+07
2024-08-19  1.242226e+07

[640 rows x 1 columns]
result=pd.read_csv("df_result_ensemble.csv")
plt.rcParams["figure.figsize"] = (15, 5)
result.plot(title="Ensemble Strategy")
plt.show()

df_result_ensemble = pd.read_csv("df_result_ensemble.csv", parse_dates=['date']).set_index('date')
df_dji = pd.read_csv("df_dji.csv", parse_dates=['date']).set_index('date')

plt.rcParams["figure.figsize"] = (15, 5)

plt.plot(df_result_ensemble.index, df_result_ensemble['ensemble'], label='Ensemble Strategy')
plt.plot(df_dji.index, df_dji['dji'], label='DJIA', color='orange')

plt.xlabel("Date")
plt.ylabel("Account Value")
plt.title("Ensemble Strategy vs DJIA")
plt.legend()
plt.show()